home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / extlib20.arc / EXTLIB.DOC next >
Text File  |  1990-03-09  |  176KB  |  6,205 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.                                  EXTENDED LIBRARY
  21.  
  22.                                    Version 2.0
  23.  
  24.  
  25.  
  26.                                  Reference Manual
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.                                   Distributed By
  37.  
  38.                       Maine Data and Financial Systems, Inc.
  39.                                   HCR 79 Box 103
  40.                                  Orland, ME 04472
  41.  
  42.                                   (207) 469-7027
  43.  
  44.  
  45.  
  46.                    Copyright (c) 1988, 1989, 1990 By MDFS, Inc.
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.                                                          License Agreement
  74.  
  75.                                 License Agreement
  76.  
  77.        The Extended Library  is protected by  United States Copyright  Law
  78.        and  International Treaty  provisions.   All  rights are  reserved.
  79.        Non-registered users of Extended Library  are licensed only to  use
  80.        the program  on a trial basis  for the sole purpose  of determining
  81.        whether or not it meets their requirements.  All other use requires
  82.        registration.
  83.  
  84.        Any other use  of non-registered copies of Extended  Library by any
  85.        person,  business,  corporation,  government organization,  or  any
  86.        other  entity is  strictly forbidden  and  is a  violation of  this
  87.        license agreement.
  88.  
  89.        Registration permits  a user license  to use Extended Library  on a
  90.        single computer.
  91.  
  92.        All users  are granted a  limited license to copy  Extended Library
  93.        for  the  trial  use  of  others,  with  the  following  additional
  94.        conditions:
  95.  
  96.             Extended  Library  must  be  distributed  in  unmodified,
  97.             complete  form,  including   this  Reference  Manual  and
  98.             License Agreement.
  99.  
  100.             Extended Library may  not be  distributed in  conjunction
  101.             with  any other product, without permission of Maine Data
  102.             and Financial Systems, Inc.
  103.  
  104.             No  fee, other than a  bonafide disk duplicating fee, not
  105.             to exceed  $6.00 per  disk, may  be charged  for Extended
  106.             Library.
  107.  
  108.        Maine Data and Financial Systems, Inc. grants, to registered owners
  109.        only, a royalty-free right to  reproduce and distribute the runtime
  110.        routines provided they are distributed only in conjunction with and
  111.        as part of a software product.
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                                                                          i
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.                                                                   Warranty
  140.  
  141.                                      Warranty
  142.  
  143.        Maine Data  and Financial  Systems, Inc. makes  no warranty  of any
  144.        kind,   express  or  implied,  including  without  limitation,  any
  145.        warranties  of  merchantability  and/or  fitness for  a  particular
  146.        purpose.  Maine Data and Financial  Systems, Inc. shall not be held
  147.        liable  for any  damages,  whether  direct,  indirect,  special  or
  148.        consequential arising from a failure  of this program to operate in
  149.        the manner desired by the user.  Maine Data and Financial  Systems,
  150.        Inc. shall not  be held liable for  any damage to data  or property
  151.        which  may be  caused directly  or indirectly  by the  use  of this
  152.        program.
  153.  
  154.        In no event  will Maine Data  and Financial Systems,  Inc. be  held
  155.        liable for  any damages,  including (but not  limited to)  any lost
  156.        profits,  lost savings or other incidental or consequential damages
  157.        arising out of the use or inability to use this program, or for any
  158.        claim by any other party.
  159.  
  160.        This warranty is governed by the laws of the State of Maine.
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                                                         ii
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.                                                          Table of Contents
  206.  
  207.                                 Table of Contents
  208.  
  209.  
  210.        Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .   1
  211.  
  212.        Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . .   2
  213.  
  214.        Global Variables  . . . . . . . . . . . . . . . . . . . . . . .   3
  215.             center_button  . . . . . . . . . . . . . . . . . . . . . .   3
  216.             left_button  . . . . . . . . . . . . . . . . . . . . . . .   3
  217.             menu_att . . . . . . . . . . . . . . . . . . . . . . . . .   3
  218.             menu_highlight . . . . . . . . . . . . . . . . . . . . . .   4
  219.             menu_hotkey  . . . . . . . . . . . . . . . . . . . . . . .   4
  220.             mouse_row  . . . . . . . . . . . . . . . . . . . . . . . .   4
  221.             mouse_col  . . . . . . . . . . . . . . . . . . . . . . . .   4
  222.             nonibm . . . . . . . . . . . . . . . . . . . . . . . . . .   5
  223.             right_button . . . . . . . . . . . . . . . . . . . . . . .   5
  224.  
  225.        Standard Data Types . . . . . . . . . . . . . . . . . . . . . .   6
  226.             boolean  . . . . . . . . . . . . . . . . . . . . . . . . .   6
  227.             DATE . . . . . . . . . . . . . . . . . . . . . . . . . . .   6
  228.             MENU . . . . . . . . . . . . . . . . . . . . . . . . . . .   7
  229.             MENU_HEAD  . . . . . . . . . . . . . . . . . . . . . . . .   8
  230.             PHONE  . . . . . . . . . . . . . . . . . . . . . . . . . .   9
  231.             SSN  . . . . . . . . . . . . . . . . . . . . . . . . . .    10
  232.  
  233.        Functions . . . . . . . . . . . . . . . . . . . . . . . . . .    11
  234.             clearcolumn  . . . . . . . . . . . . . . . . . . . . . .    12
  235.             clearone . . . . . . . . . . . . . . . . . . . . . . . .    13
  236.             clearrow . . . . . . . . . . . . . . . . . . . . . . . .    14
  237.             clearscreen  . . . . . . . . . . . . . . . . . . . . . .    15
  238.             cursoroff  . . . . . . . . . . . . . . . . . . . . . . .    16
  239.             cursoron . . . . . . . . . . . . . . . . . . . . . . . .    16
  240.             date_string  . . . . . . . . . . . . . . . . . . . . . .    17
  241.             dialog . . . . . . . . . . . . . . . . . . . . . . . . .    18
  242.             display_date . . . . . . . . . . . . . . . . . . . . . .    20
  243.             display_dollar . . . . . . . . . . . . . . . . . . . . .    21
  244.             display_number . . . . . . . . . . . . . . . . . . . . .    22
  245.             display_phone  . . . . . . . . . . . . . . . . . . . . .    23
  246.             display_ssn  . . . . . . . . . . . . . . . . . . . . . .    24
  247.             display_string . . . . . . . . . . . . . . . . . . . . .    25
  248.             drawborder . . . . . . . . . . . . . . . . . . . . . . .    26
  249.             fillcolumn . . . . . . . . . . . . . . . . . . . . . . .    27
  250.             fillone  . . . . . . . . . . . . . . . . . . . . . . . .    28
  251.             fillrow  . . . . . . . . . . . . . . . . . . . . . . . .    29
  252.             fillscreen . . . . . . . . . . . . . . . . . . . . . . .    30
  253.             getcurpos  . . . . . . . . . . . . . . . . . . . . . . .    31
  254.             hidemouse  . . . . . . . . . . . . . . . . . . . . . . .    32
  255.             hotstring  . . . . . . . . . . . . . . . . . . . . . . .    33
  256.             input_date . . . . . . . . . . . . . . . . . . . . . . .    34
  257.  
  258.                                                                        iii
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.                                                          Table of Contents
  272.  
  273.             input_dollar . . . . . . . . . . . . . . . . . . . . . .    36
  274.             input_number . . . . . . . . . . . . . . . . . . . . . .    37
  275.             input_phone  . . . . . . . . . . . . . . . . . . . . . .    38
  276.             input_ssn  . . . . . . . . . . . . . . . . . . . . . . .    40
  277.             input_string . . . . . . . . . . . . . . . . . . . . . .    42
  278.             keypressed . . . . . . . . . . . . . . . . . . . . . . .    43
  279.             movescreen . . . . . . . . . . . . . . . . . . . . . . .    44
  280.             phone_string . . . . . . . . . . . . . . . . . . . . . .    45
  281.             popup  . . . . . . . . . . . . . . . . . . . . . . . . .    46
  282.             printcenter  . . . . . . . . . . . . . . . . . . . . . .    48
  283.             printone . . . . . . . . . . . . . . . . . . . . . . . .    49
  284.             printstring  . . . . . . . . . . . . . . . . . . . . . .    50
  285.             pulldown . . . . . . . . . . . . . . . . . . . . . . . .    51
  286.             pulldown_bar . . . . . . . . . . . . . . . . . . . . . .    57
  287.             readmouse  . . . . . . . . . . . . . . . . . . . . . . .    58
  288.             resetmouse . . . . . . . . . . . . . . . . . . . . . . .    59
  289.             restorescreen  . . . . . . . . . . . . . . . . . . . . .    60
  290.             save_initial_video . . . . . . . . . . . . . . . . . . .    61
  291.             savescreen . . . . . . . . . . . . . . . . . . . . . . .    62
  292.             setattrib  . . . . . . . . . . . . . . . . . . . . . . .    63
  293.             setcurpos  . . . . . . . . . . . . . . . . . . . . . . .    64
  294.             setcursor  . . . . . . . . . . . . . . . . . . . . . . .    65
  295.             setone . . . . . . . . . . . . . . . . . . . . . . . . .    66
  296.             settext80  . . . . . . . . . . . . . . . . . . . . . . .    67
  297.             showmouse  . . . . . . . . . . . . . . . . . . . . . . .    68
  298.             ssn_string . . . . . . . . . . . . . . . . . . . . . . .    69
  299.             w_close  . . . . . . . . . . . . . . . . . . . . . . . .    70
  300.             w_clreol . . . . . . . . . . . . . . . . . . . . . . . .    71
  301.             w_cls  . . . . . . . . . . . . . . . . . . . . . . . . .    72
  302.             w_draw . . . . . . . . . . . . . . . . . . . . . . . . .    73
  303.             w_horizontal_bar . . . . . . . . . . . . . . . . . . . .    74
  304.             w_open . . . . . . . . . . . . . . . . . . . . . . . . .    75
  305.             w_print  . . . . . . . . . . . . . . . . . . . . . . . .    77
  306.             w_printat  . . . . . . . . . . . . . . . . . . . . . . .    78
  307.             w_printf . . . . . . . . . . . . . . . . . . . . . . . .    79
  308.             w_println  . . . . . . . . . . . . . . . . . . . . . . .    80
  309.             w_printlnat  . . . . . . . . . . . . . . . . . . . . . .    81
  310.             w_scroll . . . . . . . . . . . . . . . . . . . . . . . .    82
  311.             w_setcurpos  . . . . . . . . . . . . . . . . . . . . . .    84
  312.             w_vertical_bar . . . . . . . . . . . . . . . . . . . . .    85
  313.             waitkey  . . . . . . . . . . . . . . . . . . . . . . . .    86
  314.             wprintf  . . . . . . . . . . . . . . . . . . . . . . . .    87
  315.  
  316.        Registration  . . . . . . . . . . . . . . . . . . . . . . . .    88
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.                                                                         iv
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                                                               Introduction
  338.  
  339.                                    Introduction
  340.  
  341.        Extended Library is an extensive library of C runtime routines that
  342.        allow easy program implementation of  many of today's advanced user
  343.        interface  techniques.  Some of Extended Library's features include
  344.        dynamic  display  screen  windows, pull-down  menus,  pop-up menus,
  345.        dialog box menus, horizontal and vertical scroll bars, reading from
  346.        and  writing  to  display memory  without  interference,  formatted
  347.        display input/output routines, and a wide variety of cursor control
  348.        routines.  Furthermore, the Extended Library routines fully support
  349.        a Microsoft compatible mouse.
  350.  
  351.        The Extended Library routines are written in both assembly language
  352.        and C and can be used with Turbo C, Microsoft C,  Microsoft QuickC,
  353.        and Lattice  C.  The  Extended Library supports the  small, medium,
  354.        compact, and  large memory  models.  (Note:  Only the  small memory
  355.        model version  of Extended Library  is included with  the shareware
  356.        version.)
  357.  
  358.        Lattice C is a trademark of Lattice, Inc.
  359.  
  360.        Microsoft is  a registered trademark  and QuickC is a  trademark of
  361.        the Microsoft Corporation.
  362.  
  363.        Turbo C is a trademark of Borland International, Inc.
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                                                          1                                                                         1
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.                                                                  Libraries
  404.  
  405.                                     Libraries
  406.  
  407.        Although  Extended  Library is  really  only  one  set  of  library
  408.        routines,  C's support  of  the various  memory  models requires  a
  409.        separate  version  of the  library  for  each  memory model.    The
  410.        following is a list of the various versions of Extended Library:
  411.  
  412.        ===================================================================
  413.        Compiler  Small          Medium         Compact        Large
  414.                  Model          Model          Model          Model
  415.        -------------------------------------------------------------------
  416.        TC        TEXTLIBS.LIB   TEXTLIBM.LIB   TEXTLIBC.LIB   TEXTLIBL.LIB
  417.        MCS       MEXTLIBS.LIB   MEXTLIBM.LIB   MEXTLIBC.LIB   MEXTLIBL.LIB
  418.        QC        QEXTLIBS.LIB   QEXTLIBM.LIB   QEXTLIBC.LIB   QEXTLIBL.LIB
  419.        LC        LEXTLIBS.LIB   LEXTLIBP.LIB   LEXTLIBD.LIB   LEXTLIBL.LIB
  420.        ===================================================================
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.                                                                          2                                                                         2
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.                                                           Global Variables
  470.  
  471.                                  Global Variables
  472.  
  473.        The Extended Library defines a  number of variables in the extlib.h
  474.        header  file.    Through  proper use,  these  variables  allow  the
  475.        programmer  to customize  the Extended  Library  functions to  meet
  476.        particular application program's needs.
  477.  
  478.  
  479.        center_button
  480.        -------------------------------------------------------------------
  481.        Defined As:    int center_button;
  482.  
  483.        Description:   After  a  call  to   the  readmouse  function,   the
  484.                       center_button  variable  holds  the  mouse's  center
  485.                       button status.   If the center button  is being held
  486.                       down,  center_button  will  be  set  to  TRUE   (1).
  487.                       Otherwise, center_button will be set to FALSE (0) to
  488.                       indicate a released center button.
  489.  
  490.  
  491.        left_button
  492.        ------------------------------------------------------------------
  493.        Defined As:    int left_button;
  494.  
  495.        Description:   After  a  call   to  the  readmouse   function,  the
  496.                       left_button variable  holds the mouse's  left button
  497.                       status.    If the  left button  is being  held down,
  498.                       left_button will  be set  to TRUE  (1).   Otherwise,
  499.                       left_button will be  set to FALSE (0) to  indicate a
  500.                       released left button.
  501.  
  502.  
  503.        menu_att
  504.        ------------------------------------------------------------------
  505.        Defined As:    int menu_att;
  506.  
  507.        Description:   The menu_att variable is used by Extended Library as
  508.                       the default  display attribute  for the  dialog box,
  509.                       pop-up, and  pull-down menu  functions.   Initially,
  510.                       menu_att is set to a value of 0x70 (black characters
  511.                       on  a white  background).    However,  the  menu_att
  512.                       variable  can  be  changed  to  suit   a  particular
  513.                       application program's needs.
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.                                                                          3                                                                         3
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.                                                           Global Variables
  536.  
  537.        menu_highlight
  538.        -------------------------------------------------------------------
  539.        Defined As:    int menu_highlight;
  540.  
  541.        Description:   The  menu_highlight  variable  is used  by  Extended
  542.                       Library  as  the   default  display  attribute   for
  543.                       highlighting    menu    selections.       Initially,
  544.                       menu_highlight  is set  to a  value  of 0x07  (white
  545.                       characters  on a  black  background).   However, the
  546.                       menu_highlight  variable can  be changed  to suit  a
  547.                       particular application program's needs.
  548.  
  549.  
  550.        menu_hotkey
  551.        -------------------------------------------------------------------
  552.        Defined As:    int menu_hotkey;
  553.  
  554.        Description:   The menu_hotkey variable is used by Extended Library
  555.                       as  the  default  display  attribute for  menu  item
  556.                       hotkeys.  Initially,  menu_hotkey is set to  a value
  557.                       of  0x7f  (intense  white  characters  on   a  white
  558.                       background).  However, the menu_hotkey variable  can
  559.                       be   changed  to   suit  a   particular  application
  560.                       program's needs.
  561.  
  562.  
  563.        mouse_row
  564.        -------------------------------------------------------------------
  565.        Defined As:    int mouse_row;
  566.  
  567.        Description:   After  a   call  to  the  readmouse   function,  the
  568.                       mouse_row  variable holds  the  mouse pointer's  row
  569.                       coordinate.
  570.  
  571.  
  572.        mouse_col
  573.        -------------------------------------------------------------------
  574.        Defined As:    int mouse_col;
  575.  
  576.        Description:   After  a  call   to  the  readmouse  function,   the
  577.                       mouse_col variable holds  the mouse pointer's column
  578.                       coordinate.
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                                                                          4                                                                         4
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.                                                           Global Variables
  602.  
  603.        nonibm
  604.        -------------------------------------------------------------------
  605.        Defined As:    int nonibm;
  606.  
  607.        Description:   The nonibm variable  is used by Extended  Library to
  608.                       eliminate snow  on an IBM  CGA.  When it  is called,
  609.                       the  settext80   function  determines   the  current
  610.                       display  adapter's type.    If  a  CGA  is  present,
  611.                       settext80 sets nonibm to FALSE (0).  If an MDA, EGA,
  612.                       or  VGA  is  present,   settext80  sets  the  nonibm
  613.                       variable  to TRUE  (1).    If  the  current  display
  614.                       adapter  is a  non-IBM  CGA,  it  is  the  program's
  615.                       responsibility to  manually set the  nonibm variable
  616.                       to  TRUE.    Although  this  is  strictly  optional,
  617.                       manually setting  the nonibm variable will  speed up
  618.                       display input/output.
  619.  
  620.  
  621.        right_button
  622.        -------------------------------------------------------------------
  623.        Defined As:    int right_button
  624.  
  625.        Description:   After  a   call  to  the   readmouse  function,  the
  626.                       right_button variable holds the mouse's right button
  627.                       status.   If  the right  button is being  held down,
  628.                       right_button  will be set  to TRUE (1).   Otherwise,
  629.                       right_button will be set to FALSE  (0) to indicate a
  630.                       released right button.
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.                                                                          5                                                                         5
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.                                                        Standard Data Types
  668.  
  669.                                Standard Data Types
  670.  
  671.        In  extlib.h,  Extended Library  defines  a number  of  useful data
  672.        types.
  673.  
  674.  
  675.        boolean
  676.        -------------------------------------------------------------------
  677.        Defined As:    typedef int boolean;
  678.  
  679.        Description:   The  boolean data  type is  used  to define  logical
  680.                       variables.  To assist in the use of the boolean data
  681.                       type,  the following  two constants  are  defined in
  682.                       extlib.h:
  683.  
  684.                       ====================================================
  685.                       Constant                 Value
  686.                       ----------------------------------------------------
  687.                       TRUE                     1
  688.                       FALSE                    0
  689.                       ====================================================
  690.  
  691.  
  692.        DATE
  693.        -------------------------------------------------------------------
  694.        Defined As:    typedef struct {
  695.                            int month, day, year;
  696.                       } DATE;
  697.  
  698.        Description:   The  DATE structure is used  to define dates for the
  699.                       date_string, display_date, and input_date functions.
  700.                       The DATE structure is used as follows:
  701.  
  702.                       ====================================================
  703.                       Data Type                Description
  704.                       ----------------------------------------------------
  705.                       month                    The date's month.
  706.                       day                      The  date's   day  of   the
  707.                                                month.
  708.                       year                     The date's year.
  709.                       ====================================================
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                                                                          6                                                                         6
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.                                                        Standard Data Types
  734.  
  735.        MENU
  736.        -------------------------------------------------------------------
  737.        Defined As:    typedef struct {
  738.                            char *string;
  739.                            int hotkey;
  740.                            void (*function)(void);
  741.                            void (*help)(void);
  742.                       } MENU;
  743.  
  744.        Description:   The MENU structure is used to define menu  items for
  745.                       the Extended  Library  menu  functions.    The  MENU
  746.                       structure is used as follows:
  747.  
  748.                       ====================================================
  749.                       Data Type                Description
  750.                       ----------------------------------------------------
  751.                       string                   Pointer to a  string, which
  752.                                                defines the menu item.
  753.                       hotkey                   Position in  string of  the
  754.                                                menu      item's     hotkey
  755.                                                character.
  756.                       (*function)()            Pointer   to  a   function,
  757.                                                which  is  executed  if the
  758.                                                menu item is selected.
  759.                       (*help)()                Pointer   to  a   function,
  760.                                                which is  executed if  help
  761.                                                is   requested   for    the
  762.                                                highlighted menu item.
  763.                       ====================================================
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.                                                                          7                                                                         7
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.                                                        Standard Data Types
  800.  
  801.        MENU_HEAD
  802.        -------------------------------------------------------------------
  803.        Defined As:    typedef struct {
  804.                            char *heading;
  805.                            int hotkey, number;
  806.                            MENU *mptr;
  807.                       } MENU_HEAD;
  808.  
  809.        Description:   The  MENU_HEAD structure is used to define menus for
  810.                       the  Extended  Library's pull-down  menu  functions.
  811.                       The MENU_HEAD structure is used as follows:
  812.  
  813.                       ====================================================
  814.                       Data Type                Description
  815.                       ----------------------------------------------------
  816.                       heading                  Pointer to a  string, which
  817.                                                defines the menu's heading.
  818.                       hotkey                   Position in heading  of the
  819.                                                menu's   pull-down   hotkey
  820.                                                character.
  821.                       number                   Number  of  items   in  the
  822.                                                pull-down menu.
  823.                       mptr                     Pointer to an array of MENU
  824.                                                structures,  which  defines
  825.                                                the pull-down menu.
  826.                       ====================================================
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.                                                                          8                                                                         8
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.                                                        Standard Data Types
  866.  
  867.        PHONE
  868.        -------------------------------------------------------------------
  869.        Defined As:    typedef struct {
  870.                            int area, exchange, no;
  871.                       } PHONE;
  872.  
  873.        Description:   The  PHONE structure is used to define phone numbers
  874.                       for the display_phone, input_phone, and phone_string
  875.                       functions.  The PHONE structure is used as follows:
  876.  
  877.                       ====================================================
  878.                       Data Type                Description
  879.                       ----------------------------------------------------
  880.                       area                     The  phone   number's  area
  881.                                                code.
  882.                       exchange                 The      phone     number's
  883.                                                exchange.
  884.                       no                       The  phone  number's  final
  885.                                                four digits.
  886.                       ====================================================
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.                                                                          9                                                                         9
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.                                                        Standard Data Types
  932.  
  933.        SSN
  934.        -------------------------------------------------------------------
  935.        Defined As:    typedef struct {
  936.                            int no1, no2, no3;
  937.                       } SSN;
  938.  
  939.        Description:   The  SSN structure is used to define Social Security
  940.                       numbers   for   the  display_ssn,   input_ssn,   and
  941.                       ssn_string  functions.  The SSN structure is used as
  942.                       follows:
  943.  
  944.                       ====================================================
  945.                       Data Type                Description
  946.                       ----------------------------------------------------
  947.                       no1                      The     Social     Security
  948.                                                number's     first    three
  949.                                                digits.
  950.                       no2                      The     Social     Security
  951.                                                number's middle two digits.
  952.                       no3                      The     Social     Security
  953.                                                number's final four digits.
  954.                       ====================================================
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.                                                                         10                                                                        10
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.                                                                  Functions
  998.  
  999.                                     Functions
  1000.  
  1001.        The  Extended Library  contains a  wide variety  of functions.   To
  1002.        facilitate  their  use   in  application  programs,   this  section
  1003.        describes the Extended Library functions as follows:
  1004.  
  1005.        Summary:       Presents  an exact syntactic  model for each  of the
  1006.                       Extended Library functions.
  1007.  
  1008.        Description:   Describes a function's purpose and how it is used in
  1009.                       an application program.
  1010.  
  1011.        Return Value:  Explains  any of the  possible return values  for an
  1012.                       Extended Library function.
  1013.  
  1014.        See Also:      Lists  any  similar  or  related  Extended   Library
  1015.                       function.
  1016.  
  1017.        Example:       Illustrates how  an Extended Library  function could
  1018.                       actually be used in an application program.
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.                                                                         11                                                                        11
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.                                                                  Functions
  1064.  
  1065.        clearcolumn
  1066.        -------------------------------------------------------------------
  1067.        Summary:       #include "extlib.h"
  1068.                       void clearcolumn(row1, col, row2, att);
  1069.                       int row1;                (starting row)
  1070.                       int col;                 (column)
  1071.                       int row2;                (ending row)
  1072.                       int att;                 (attribute)
  1073.  
  1074.        Description:   The clearcolumn macro clears a display screen column
  1075.                       starting  at the  coordinate defined by  (row1, col)
  1076.                       and  ending  with the  coordinate defined  by (row2,
  1077.                       col).  Additionally, the column's attributes will be
  1078.                       set to (att).
  1079.  
  1080.        Return Value:  No value is returned.
  1081.  
  1082.        See Also:      clearone, clearrow, and clearscreen
  1083.  
  1084.        Example:       The  following program  clears the  display screen's
  1085.                       first column.
  1086.  
  1087.                       /* clearcolumn demo */
  1088.                       #include "extlib.h"
  1089.  
  1090.                       main()
  1091.                       {
  1092.                            save_initial_video();
  1093.                            clearcolumn(1, 1, 25, 0x17);
  1094.                            waitkey();
  1095.                       }
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.                                                                         12                                                                        12
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.                                                                  Functions
  1130.  
  1131.        clearone
  1132.        -------------------------------------------------------------------
  1133.        Summary:       #include "extlib.h"
  1134.                       void clearone(row, col, att);
  1135.                       int row, col;            (screen position)
  1136.                       int att;                 (attribute)
  1137.  
  1138.        Description:   The  clearone   macro  clears  the   display  screen
  1139.                       position defined  by (row, col).   Additionally, the
  1140.                       position's attribute is set to (att).
  1141.  
  1142.        Return Value:  No value is returned.
  1143.  
  1144.        See Also:      clearcolumn, clearrow, and clearscreen
  1145.  
  1146.        Example:       The  following  program  demonstrates  the  clearone
  1147.                       macro  by erasing  the character  at display  screen
  1148.                       position 10, 40.
  1149.  
  1150.                       /* clearone demo */
  1151.                       #include "extlib.h"
  1152.  
  1153.                       main()
  1154.                       {
  1155.                            save_initial_video();
  1156.                            clearone(10, 40, 0x17);
  1157.                            waitkey();
  1158.                       }
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.                                                                         13                                                                        13
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.                                                                  Functions
  1196.  
  1197.        clearrow
  1198.        -------------------------------------------------------------------
  1199.        Summary:       #include "extlib.h"
  1200.                       void clearrow(row, col1, col2, att);
  1201.                       int row;                 (row)
  1202.                       int col1;                (starting column)
  1203.                       int col2;                (ending column)
  1204.                       int att;                 (attribute)
  1205.  
  1206.        Description:   The  clearrow  macro  clears a  display  screen  row
  1207.                       starting  at the  coordinate defined by  (row, col1)
  1208.                       and  ending  with the  coordinate  defined  by (row,
  1209.                       col2).  Additionally, the  row's attributes will  be
  1210.                       set to (att).
  1211.  
  1212.        Return Value:  No value is returned.
  1213.  
  1214.        See Also:      clearcolumn, clearone, and clearscreen
  1215.  
  1216.        Example:       The  following  program  demonstrates  the  clearrow
  1217.                       macro by erasing the top line of the display screen.
  1218.  
  1219.                       /* clearrow demo */
  1220.                       #include "extlib.h"
  1221.  
  1222.                       main()
  1223.                       {
  1224.                            save_initial_video();
  1225.                            clearrow(1, 1, 80, 0x17);
  1226.                            waitkey();
  1227.                       }
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.                                                                         14                                                                        14
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.                                                                  Functions
  1262.  
  1263.        clearscreen
  1264.        -------------------------------------------------------------------
  1265.        Summary:       #include "extlib.h"
  1266.                       void clearscreen(row1, col1, row2, col2, att);
  1267.                       int row1, col1;          (Upper left  corner of  the
  1268.                                                text window)
  1269.                       int row2, col2;          (Lower right corner  of the
  1270.                                                text window)
  1271.                       int att;                 (text window attribute)
  1272.  
  1273.        Description:   The  clearscreen macro clears an area of the display
  1274.                       screen defined by  the coordinates (row1, col1)  and
  1275.                       (row2,  col2).    Additionally,  the  cleared   text
  1276.                       window's attributes are set to att.
  1277.  
  1278.        Return Value:  No value is returned.
  1279.  
  1280.        See Also:      clearcolumn, clearone, and clearrow
  1281.  
  1282.        Example:       The following  program demonstrates  the clearscreen
  1283.                       macro by clearing the display screen.
  1284.  
  1285.                       /* clearscreen demo */
  1286.                       #include "extlib.h"
  1287.  
  1288.                       main()
  1289.                       {
  1290.                            save_initial_video();
  1291.                            clearscreen(1, 1, 25, 80, 0x17);
  1292.                            waitkey();
  1293.                       }
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.                                                                         15                                                                        15
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.                                                                  Functions
  1328.  
  1329.        cursoroff,cursoron
  1330.        -------------------------------------------------------------------
  1331.        Summary:       #include "extlib.h"
  1332.                       void cursoroff(void);
  1333.                       void cursoron(void);
  1334.  
  1335.        Description:   The  cursoroff function turns  the cursor off.   The
  1336.                       cursoron function turns the cursor on.
  1337.  
  1338.        Return Value:  No value is returned.
  1339.  
  1340.        Example:       The following program demonstrates the cursoroff and
  1341.                       cursoron functions by first  turning the cursor  off
  1342.                       and then turning the cursor back on again.
  1343.  
  1344.                       /* cursoroff/cursoron demo */
  1345.                       #include <stdlib.h>
  1346.                       #include "extlib.h"
  1347.  
  1348.                       main()
  1349.                       {
  1350.                            settext80();
  1351.                            clearscreen(1, 1, 25, 80, 7);
  1352.                            cursoroff();
  1353.                            printstring(1, 1, "Press a key to turn the
  1354.                                 cursor back on.....");
  1355.                            waitkey();
  1356.                            cursoron();
  1357.                            exit(0);
  1358.                       }
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.                                                                         16                                                                        16
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.                                                                  Functions
  1394.  
  1395.        date_string
  1396.        -------------------------------------------------------------------
  1397.        Summary:       #include "extlib.h"
  1398.                       char *date_string(string, date);
  1399.                       char *string;            (storage  location for  the
  1400.                                                date string)
  1401.                       DATE *date;              (date structure)
  1402.  
  1403.        Description:   The  date_string   function  constructs   an  eight-
  1404.                       character date string (string  = "mm/dd/yy") for the
  1405.                       date defined by (date).
  1406.  
  1407.        Return Value:  The date_string  function returns  a pointer to  the
  1408.                       resulting date string.
  1409.  
  1410.        See Also:      display_date and input_date
  1411.  
  1412.        Example:       The following  program demonstrates  the date_string
  1413.                       function by displaying a constructed  date string at
  1414.                       the upper left corner of the video display.
  1415.  
  1416.                       /* date_string */
  1417.                       #include <stdlib.h>
  1418.                       #include "extlib.h"
  1419.  
  1420.                       main()
  1421.                       {
  1422.                            static DATE d = {10, 3, 61};
  1423.                            char line[80];
  1424.  
  1425.                            save_initial_video();
  1426.                            printstring(1, 1, date_string(line, &d));
  1427.                            waitkey();
  1428.                            exit(0);
  1429.                       }
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.                                                                         17                                                                        17
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.                                                                  Functions
  1460.  
  1461.        dialog
  1462.        -------------------------------------------------------------------
  1463.        Summary:       #include "extlib.h"
  1464.                       int dialog(row, col, nmenus, menu, ESC_flag,
  1465.                            ntitles, [title, ...]);
  1466.                       int row, col;            (coordinate  to  center the
  1467.                                                dialog box on)
  1468.                       int nmenus;              (number of menu items)
  1469.                       MENU *menu;              (pointer  to  an  array  of
  1470.                                                MENU structures)
  1471.                       int ntitles;             (number of titles)
  1472.                       char *title;             (title pointer)
  1473.  
  1474.        Description:   The  dialog  function  displays  a  dialog box  menu
  1475.                       centered at  the coordinates defined by  (row, col).
  1476.                       If  any titles  are  specified, they  are  displayed
  1477.                       above the menu  items pointed to by (menu).   A menu
  1478.                       item can  be  selected  by  pressing  the  indicated
  1479.                       hotkey.  Furthermore, the double-lined menu item can
  1480.                       be  selected by simply  pressing <ENTER>.   Help, if
  1481.                       it's available, can be requested for the highlighted
  1482.                       menu  item  by  pressing  <F1>.    The  double-lined
  1483.                       highlighting is moved from one menu item to the next
  1484.                       by pressing  either <LEFT  ARROW> or  <RIGHT ARROW>.
  1485.                       Additionally,  the  ESC_flag is  used  to enable  or
  1486.                       disable the <ESC>  key.  If ESC_flag is  set to TRUE
  1487.                       (1),  the  <ESC>  key is  enabled.    Otherwise, the
  1488.                       ESC_flag  should be set to FALSE  (0) to disable the
  1489.                       <ESC> key.
  1490.  
  1491.        Return Value:  If the menu  item has an NULL  function pointer, the
  1492.                       dialog  function returns  the value of  the selected
  1493.                       item's  hotkey.    Otherwise,  the  dialog  function
  1494.                       returns  a value  of  zero.   If  the  <ESC> key  is
  1495.                       enabled  and <ESC> is  pressed, the  dialog function
  1496.                       will return a value of 27.
  1497.  
  1498.        Example:       The  following   program  demonstrates   the  dialog
  1499.                       function  by asking whether or  not a file should be
  1500.                       saved.  If instructed to  do so, the dialog function
  1501.                       executes the simulated save file function.
  1502.  
  1503.                       /* dialog demo */
  1504.                       #include <stdio.h>
  1505.                       #include <stdlib.h>
  1506.                       #include "extlib.h"
  1507.  
  1508.                       void save_file(void);
  1509.  
  1510.                       static MENU menu[3] = {
  1511.  
  1512.                                                                         18                                                                        18
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.                                                                  Functions
  1526.  
  1527.                            {"Yes", 0, save_file, NULL},
  1528.                            {"No", 0, NULL, NULL},
  1529.                            {"Cancel", 0, NULL, NULL} };
  1530.  
  1531.                       void main(void)
  1532.                       {
  1533.                            int key;
  1534.  
  1535.                            save_initial_video();
  1536.                            do {
  1537.                                 key = dialog(13, 40, 3, menu, TRUE, 2,
  1538.                                      "The file hasn't been saved!",
  1539.                                      "Do you want me to save it?");
  1540.                            } while (key != 27 && key != 'C');
  1541.                            exit(0);
  1542.                       }
  1543.  
  1544.                       void save_file(void)
  1545.                       {
  1546.                            printcenter(13, 40, "The file has been saved");
  1547.                            waitkey();
  1548.                            clearscreen(13, 1, 13, 80, 7);
  1549.                       }
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.                                                                         19                                                                        19
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.                                                                  Functions
  1592.  
  1593.        display_date
  1594.        -------------------------------------------------------------------
  1595.        Summary:       #include "extlib.h"
  1596.                       void display_date(row, col, date);
  1597.                       int row, col;            (screen position)
  1598.                       DATE *date;              (date structure)
  1599.  
  1600.        Description:   The display_date function displays  a date (date) at
  1601.                       the display screen position defined by (row, col).
  1602.  
  1603.        Return Value:  No value is returned.
  1604.  
  1605.        See Also:      date_string and input_date
  1606.  
  1607.        Example:       The following program  demonstrates the display_date
  1608.                       function by  displaying a  variety of  dates on  the
  1609.                       display screen.
  1610.  
  1611.                       /* display_date demo */
  1612.                       #include <stdlib.h>
  1613.                       #include "extlib.h"
  1614.  
  1615.                       main()
  1616.                       {
  1617.                            static DATE d1 = {02, 04, 81};
  1618.                            static DATE d2 = {03, 12, 83};
  1619.  
  1620.                            save_initial_video();
  1621.                            display_date(1, 10, &d1);
  1622.                            display_date(1, 20, &d2);
  1623.                            waitkey();
  1624.                            exit(0);
  1625.                       }
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.                                                                         20                                                                        20
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.                                                                  Functions
  1658.  
  1659.        display_dollar
  1660.        -------------------------------------------------------------------
  1661.        Summary:       #include "extlib.h"
  1662.                       void display_dollar(row, col, length, dollar);
  1663.                       int row, col;            (screen position)
  1664.                       int length;              (field length)
  1665.                       double *dollar;          (dollar value)
  1666.  
  1667.        Description:   The  display_dollar   function  displays   a  right-
  1668.                       justified dollar value (dollar)  with a field length
  1669.                       of (length) at  the display screen  position defined
  1670.                       by (row, col).
  1671.  
  1672.        Return Value:  No value is returned.
  1673.  
  1674.        See Also:      input_dollar
  1675.  
  1676.        Example:       The    following     program    demonstrates     the
  1677.                       display_dollar function  by displaying a  variety of
  1678.                       dollar values on the display screen.
  1679.  
  1680.                       /* display_dollar demo */
  1681.                       #include <stdlib.h>
  1682.                       #include "extlib.h"
  1683.  
  1684.                       main()
  1685.                       {
  1686.                            double n1 = 32.376, n2 = -55.23;
  1687.  
  1688.                            save_initial_video();
  1689.                            display_dollar(1, 1, 10, &n1);
  1690.                            display_dollar(1, 40, 10, &n2);
  1691.                            waitkey();
  1692.                            exit(0);
  1693.                       }
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.                                                                         21                                                                        21
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.                                                                  Functions
  1724.  
  1725.        display_number
  1726.        -------------------------------------------------------------------
  1727.        Summary:       #include "extlib.h"
  1728.                       void display_number(row, col, length, number);
  1729.                       int row, col;            (screen position)
  1730.                       int length;              (field length)
  1731.                       unsigned long *number;   (numeric value)
  1732.  
  1733.        Description:   The  display_number   function  displays   a  right-
  1734.                       justified, unsigned  numeric value  (number) with  a
  1735.                       field length  of  (length)  at  the  display  screen
  1736.                       position defined by (row, col).
  1737.  
  1738.        Return Value:  No value if returned.
  1739.  
  1740.        See Also:      input_number
  1741.  
  1742.        Example:       The    following     program    demonstrates     the
  1743.                       display_number function  by displaying a  variety of
  1744.                       numeric values on the display screen.
  1745.  
  1746.                       /* display_number demo */
  1747.                       #include <stdlib.h>
  1748.                       #include "extlib.h"
  1749.  
  1750.                       main()
  1751.                       {
  1752.                            unsigned long n1 = 456789, n2 = 6789999;
  1753.  
  1754.                            save_initial_video();
  1755.                            display_number(1, 1, 10, &n1);
  1756.                            display_number(1, 40, 10, &n2);
  1757.                            waitkey();
  1758.                            exit(0);
  1759.                       }
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.                                                                         22                                                                        22
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.                                                                  Functions
  1790.  
  1791.        display_phone
  1792.        -------------------------------------------------------------------
  1793.        Summary:       #include "extlib.h"
  1794.                       void display_phone(row, col, number);
  1795.                       int row, col;            (screen position)
  1796.                       PHONE *number;           (phone number structure)
  1797.  
  1798.        Description:   The display_phone  function displays a  phone number
  1799.                       (number) at  the display screen  position defined by
  1800.                       (row, col).
  1801.  
  1802.        Return Value:  No value is returned.
  1803.  
  1804.        See Also:      input_phone and phone_string
  1805.  
  1806.        Example:       The following program demonstrates the display_phone
  1807.                       function  by  displaying   an  assortment  of  phone
  1808.                       numbers on the display screen.
  1809.  
  1810.                       /* display_phone demo */
  1811.                       #include <stdlib.h>
  1812.                       #include "extlib.h"
  1813.  
  1814.                       main()
  1815.                       {
  1816.                            static PHONE pn1 = {800, 555, 6678};
  1817.                            static PHONE pn2 = {207, 555, 3277};
  1818.  
  1819.                            save_initial_video();
  1820.                            display_phone(1, 1, &pn1);
  1821.                            display_phone(1, 40, &pn2);
  1822.                            waitkey();
  1823.                            exit(0);
  1824.                       }
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.                                                                         23                                                                        23
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.                                                                  Functions
  1856.  
  1857.        display_ssn
  1858.        -------------------------------------------------------------------
  1859.        Summary:       #include "extlib.h"
  1860.                       void display_ssn(row, col, number);
  1861.                       int row, col;            (screen position)
  1862.                       SSN *number;             (Social   Security   number
  1863.                                                structure)
  1864.  
  1865.        Description:   The display_ssn function displays  a Social Security
  1866.                       number  (number)  at  the  display  screen  position
  1867.                       defined by (row, col).
  1868.  
  1869.        Return Value:  No value is returned.
  1870.  
  1871.        See Also:      input_ssn and ssn_string
  1872.  
  1873.        Example:       The following  program demonstrates  the display_ssn
  1874.                       function  by  displaying  an  assortment  of  Social
  1875.                       Security numbers on the display screen.
  1876.  
  1877.                       /* display_ssn demo */
  1878.                       #include <stdlib.h>
  1879.                       #include "extlib.h"
  1880.  
  1881.                       main()
  1882.                       {
  1883.                            static SSN sn1 = {007, 25, 5687};
  1884.                            static SSN sn2 = {101, 55, 3535};
  1885.  
  1886.                            save_initial_video();
  1887.                            display_ssn(1, 1, &sn1);
  1888.                            display_ssn(1, 40, &sn2);
  1889.                            waitkey();
  1890.                            exit(0);
  1891.                       }
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.                                                                         24                                                                        24
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.                                                                  Functions
  1922.  
  1923.        display_string
  1924.        -------------------------------------------------------------------
  1925.        Summary:       #include "extlib.h"
  1926.                       void display_string(row, col, length, string);
  1927.                       int row, col;            (screen position)
  1928.                       int length;              (field length);
  1929.                       char *string;            (string pointer);
  1930.  
  1931.        Description:   The   display_string  function   displays  a   left-
  1932.                       justified alphanumeric string (string) with a  field
  1933.                       length  of (length)  at the display  screen position
  1934.                       defined by (row, col).
  1935.  
  1936.        Return Value:  No value is returned.
  1937.  
  1938.        See Also:      input_string
  1939.  
  1940.        Example:       The    following     program    demonstrates     the
  1941.                       display_string functions by displaying an assortment
  1942.                       of strings on the display screen.
  1943.  
  1944.                       /* display_string demo */
  1945.                       #include <stdlib.h>
  1946.                       #include "extlib.h"
  1947.  
  1948.                       main()
  1949.                       {
  1950.                            char *s1 = "This is demo string 1";
  1951.                            char *s2 = "This is demo string 2";
  1952.  
  1953.                            save_initial_video();
  1954.                            display_string(1, 1, 25, s1);
  1955.                            display_string(1, 40, 25, s2);
  1956.                            waitkey();
  1957.                            exit(0);
  1958.                       }
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.                                                                         25                                                                        25
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.                                                                  Functions
  1988.  
  1989.        drawborder
  1990.        -------------------------------------------------------------------
  1991.        Summary:       #include "extlib.h"
  1992.                       void drawborder(row1, col1, row2, col2, btype, att);
  1993.                       int row1, col1;          (upper left  corner of  the
  1994.                                                text window)
  1995.                       int row2, col2;          (lower right corner  of the
  1996.                                                text window)
  1997.                       int btype;               (border type flag)
  1998.                       int att;                 (border attribute)
  1999.  
  2000.        Description:   The drawborder function draws a border around a text
  2001.                       window, whose  coordinates are defined by the points
  2002.                       (row1,  col1) and (row2,  col2).   Additionally, the
  2003.                       border's attributes are set to (att).
  2004.  
  2005.                       The  (btype) parameter can  be one of  the following
  2006.                       constants defined in extlib.h:
  2007.  
  2008.                       ====================================================
  2009.                       Constant                 Action
  2010.                       ----------------------------------------------------
  2011.                       SINGLE_LINE              Draws a single-lined border
  2012.                                                around the text window.
  2013.                       DOUBLE_LINE              Draws a double-lined border
  2014.                                                around the text window.
  2015.                       ====================================================
  2016.  
  2017.        Return Value:  No value is returned.
  2018.  
  2019.        Example:       The  following program  demonstrates the  drawborder
  2020.                       function by drawing a double-lined border around the
  2021.                       right half of the display screen.
  2022.  
  2023.                       /* drawborder demo */
  2024.                       #include <stdlib.h>
  2025.                       #include "extlib.h"
  2026.  
  2027.                       main()
  2028.                       {
  2029.                            save_initial_video();
  2030.                            drawborder(1, 41, 25, 80, DOUBLE_LINE, 0x70);
  2031.                            waitkey();
  2032.                            exit(0);
  2033.                       }
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.                                                                         26                                                                        26
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.                                                                  Functions
  2054.  
  2055.        fillcolumn
  2056.        -------------------------------------------------------------------
  2057.        Summary:       #include "extlib.h"
  2058.                       void fillcolumn(row1, col, row2, chr, att);
  2059.                       int row1;                (starting row)
  2060.                       int col;                 (column)
  2061.                       int row2;                (ending row)
  2062.                       int chr;                 (character)
  2063.                       int att;                 (attribute)
  2064.  
  2065.        Description:   The fillcolumn macro  fills a display  screen column
  2066.                       starting at the  coordinate defined  by (row1,  col)
  2067.                       and  ending with  the coordinate  defined  by (row2,
  2068.                       col)  with  the specified  character/attribute  pair
  2069.                       (chr/att).
  2070.  
  2071.        Return Value:  No value is returned.
  2072.  
  2073.        See Also:      fillone, fillrow, and fillscreen
  2074.  
  2075.        Example:       The  following program  demonstrates the  fillcolumn
  2076.                       macro  by filling  the first  display screen  column
  2077.                       with Ms.
  2078.  
  2079.                       /* fillcolumn demo */
  2080.                       #include <stdlib.h>
  2081.                       #include "extlib.h"
  2082.  
  2083.                       main()
  2084.                       {
  2085.                            save_initial_video();
  2086.                            fillcolumn(1, 1, 25, 'M', 0x70);
  2087.                            waitkey();
  2088.                            exit(0);
  2089.                       }
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.                                                                         27                                                                        27
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.                                                                  Functions
  2120.  
  2121.        fillone
  2122.        -------------------------------------------------------------------
  2123.        Summary:       #include "extlib.h"
  2124.                       void fillone(row, col, chr, att);
  2125.                       int row, col;            (screen position)
  2126.                       int chr;                 (character)
  2127.                       int att;                 (attribute)
  2128.  
  2129.        Description:   The  fillone  function   sets  the  display   screen
  2130.                       position  defined by  (row,  col)  to the  specified
  2131.                       character/attribute pair (chr/att).
  2132.  
  2133.        Return Value:  No value is returned.
  2134.  
  2135.        See Also:      fillcolumn, fillrow, and fillscreen
  2136.  
  2137.        Example:       The  following  program   demonstrates  the  fillone
  2138.                       function  by displaying a black-on-white M at screen
  2139.                       position (1, 40).
  2140.  
  2141.                       /* fillone demo */
  2142.                       #include <stdlib.h>
  2143.                       #include "extlib.h"
  2144.  
  2145.                       main()
  2146.                       {
  2147.                            save_initial_video();
  2148.                            fillone(1, 40, 'M', 0x70);
  2149.                            waitkey();
  2150.                            exit(0);
  2151.                       }
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.                                                                         28                                                                        28
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.                                                                  Functions
  2186.  
  2187.        fillrow
  2188.        -------------------------------------------------------------------
  2189.        Summary:       #include "extlib.h"
  2190.                       void fillrow(row, col1, col2, chr, att);
  2191.                       int row;                 (row)
  2192.                       int col1;                (starting column)
  2193.                       int col2;                (ending column)
  2194.                       int chr;                 (character)
  2195.                       int att;                 (attribute)
  2196.  
  2197.        Description:   The   fillrow  macro  fills  a  display  screen  row
  2198.                       starting at the  coordinate defined  by (row,  col1)
  2199.                       and  ending  with  the coordinate  defined  by (row,
  2200.                       col2)  with the  specified character/attribute  pair
  2201.                       (chr/att).
  2202.  
  2203.        Return Value:  No value is returned.
  2204.  
  2205.        See Also:      fillcolumn, fillone, and fillscreen
  2206.  
  2207.        Example:       The following program demonstrates the fillrow macro
  2208.                       by filling the top display screen row with M's.
  2209.  
  2210.                       /* fillrow demo */
  2211.                       #include <stdlib.h>
  2212.                       #include "extlib.h"
  2213.  
  2214.                       main()
  2215.                       {
  2216.                            save_initial_video();
  2217.                            fillrow(1, 1, 80, 'M', 0x70);
  2218.                            waitkey();
  2219.                            exit(0);
  2220.                       }
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.                                                                         29                                                                        29
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.                                                                  Functions
  2252.  
  2253.        fillscreen
  2254.        -------------------------------------------------------------------
  2255.        Summary:       #include "extlib.h"
  2256.                       void fillscreen(row1, col1, row2, col2, chr, att);
  2257.                       int row1, col1;          (upper left  corner of  the
  2258.                                                text window)
  2259.                       int row2, col2;          (lower right corner  of the
  2260.                                                text window)
  2261.                       int chr;                 (character)
  2262.                       int att;                 (attribute)
  2263.  
  2264.        Description:   The  fillscreen  function  fills   the  text  window
  2265.                       defined by the coordinates  (row1, col1) and  (row2,
  2266.                       col2), with  the character/attribute  pair specified
  2267.                       by (chr/att).
  2268.  
  2269.        Return Value:  No value is returned.
  2270.  
  2271.        See Also:      fillcolumn, fillone, and fillrow
  2272.  
  2273.        Example:       The  following program  demonstrates the  fillscreen
  2274.                       function by filling the display screen with M's.
  2275.  
  2276.                       /* fillscreen demo */
  2277.                       #include <stdlib.h>
  2278.                       #include "extlib.h"
  2279.  
  2280.                       main()
  2281.                       {
  2282.                            save_initial_video();
  2283.                            fillscreen(1, 1, 25, 80, 'M', 0x70);
  2284.                            waitkey();
  2285.                            exit(0);
  2286.                       }
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.                                                                         30                                                                        30
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.                                                                  Functions
  2318.  
  2319.        getcurpos
  2320.        -------------------------------------------------------------------
  2321.        Summary:       #include "extlib.h"
  2322.                       void getcurpos(row, col, sline, eline);
  2323.                       int *row;                (cursor row position)
  2324.                       int *col;                (cursor column position)
  2325.                       int *sline;              (cursor starting line)
  2326.                       int *eline;              (cursor ending line)
  2327.  
  2328.        Description:   The getcurpos  function retrieves the  cursor values
  2329.                       by returning the cursor's row position in (row), the
  2330.                       cursor's  column  position  in   (col),  the  cursor
  2331.                       character's starting line in (sline), and the cursor
  2332.                       character's ending line in (eline).
  2333.  
  2334.        Return Value:  No value is returned.
  2335.  
  2336.        Example:       The  following  program demonstrates  the  getcurpos
  2337.                       function by  retrieving and  displaying the  current
  2338.                       cursor values.
  2339.  
  2340.                       /* getcurpos demo */
  2341.                       #include <stdio.h>
  2342.                       #include <stdlib.h>
  2343.                       #include "extlib.h"
  2344.  
  2345.                       main()
  2346.                       {
  2347.                            int row, col, sline, eline;
  2348.  
  2349.                            settext80();
  2350.                            getcurpos(&row, &col, &sline, &eline);
  2351.                            clearscreen(1, 1, 25, 80, 7);
  2352.                            setcurpos(1, 1);
  2353.                            printf("Row: %2d  Column: %2d  Starting Line:
  2354.                                 %2d  Ending Line: %2d\n",
  2355.                                 row, col, sline, eline);
  2356.                            waitkey();
  2357.                            exit(0);
  2358.                       }
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.                                                                         31                                                                        31
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.                                                                  Functions
  2384.  
  2385.        hidemouse
  2386.        -------------------------------------------------------------------
  2387.        Summary:       #include "extlib.h"
  2388.                       void hidemouse(void);
  2389.  
  2390.        Description:   The hidemouse function turns off the mouse pointer.
  2391.  
  2392.        Return Value:  No value is returned.
  2393.  
  2394.        See Also:      showmouse
  2395.  
  2396.        Example:       The  following  program demonstrates  the  hidemouse
  2397.                       function by turning off the mouse pointer.
  2398.  
  2399.                       /* hidemouse demo */
  2400.                       #include <stdlib.h>
  2401.                       #include "extlib.h"
  2402.  
  2403.                       main()
  2404.                       {
  2405.                            save_initial_video();
  2406.                            waitkey();
  2407.                            hidemouse();
  2408.                            waitkey();
  2409.                            showmouse();
  2410.                            waitkey();
  2411.                            exit(0);
  2412.                       }
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.                                                                         32                                                                        32
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.                                                                  Functions
  2450.  
  2451.        hotstring
  2452.        -------------------------------------------------------------------
  2453.        Summary:       #include "extlib.h"
  2454.                       void hotstring(row, col, hotkey, string);
  2455.                       int row, col;            (screen position)
  2456.                       int hotkey;              (hotkey position)
  2457.                       char *string;            (string pointer)
  2458.  
  2459.        Description:   The  hotstring function  displays  a string  at  the
  2460.                       display  screen  position  defined  by  (row,  col).
  2461.                       Additionally,  the  string's   (hotkey)  character's
  2462.                       attribute is set to menu_hotkey.
  2463.  
  2464.        Return Value:  No value is returned.
  2465.  
  2466.        See Also:      menu_hotkey
  2467.  
  2468.        Example:       The  following  program demonstrates  the  hotstring
  2469.                       function  by  displaying a  hotstring  on  the tenth
  2470.                       display screen line.
  2471.  
  2472.                       /* hotstring demo */
  2473.                       #include <stdlib.h>
  2474.                       #include "extlib.h"
  2475.  
  2476.                       main()
  2477.                       {
  2478.                            save_initial_video();
  2479.                            hotstring(10, 1, 10, "This is a HOTSTRING
  2480.                                 test!");
  2481.                            waitkey();
  2482.                            exit(0);
  2483.                       }
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.                                                                         33                                                                        33
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.                                                                  Functions
  2516.  
  2517.        input_date
  2518.        -------------------------------------------------------------------
  2519.        Summary:       #include "extlib.h"
  2520.                       int input_date(row, col, date);
  2521.                       int row, col;            (screen position)
  2522.                       DATE *date;              (data     entry     field's
  2523.                                                contents)
  2524.  
  2525.        Description:   The  input_date  function  displays  and  inputs  an
  2526.                       eight-character date  (date  =  "mm/dd/yy")  at  the
  2527.                       display  screen position defined by (row, col).  The
  2528.                       following  keys  are  active  during the  input_date
  2529.                       function:
  2530.  
  2531.                       ====================================================
  2532.                       Control Key              Action
  2533.                       ----------------------------------------------------
  2534.                       HOME                     Move to the first character
  2535.                                                in the data entry field.
  2536.                       END                      Move to the  last character
  2537.                                                in the data entry field.
  2538.                       LEFT ARROW               Move   to    the   previous
  2539.                                                character in the data entry
  2540.                                                field.
  2541.                       RIGHT ARROW              Move to the  next character
  2542.                                                in the data entry field.
  2543.                       ====================================================
  2544.  
  2545.        Return Value:  The  input_date function  returns the  value of  the
  2546.                       last key pressed.
  2547.  
  2548.        See Also:      date_string and display_date
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.                                                                         34                                                                        34
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.                                                                  Functions
  2582.  
  2583.        Example:       The  following program  demonstrates the  input_date
  2584.                       function by requesting the current date.
  2585.  
  2586.                       /* input_date demo */
  2587.                       #include <stdlib.h>
  2588.                       #include "extlib.h"
  2589.  
  2590.                       main()
  2591.                       {
  2592.                            static DATE d;
  2593.  
  2594.                            save_initial_video();
  2595.                            printstring(10, 1,
  2596.                                 "Please Enter Today's Date:");
  2597.                            while (input_date(10, 28, &d) != 27);
  2598.                            exit(0);
  2599.                       }
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.                                                                         35                                                                        35
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.                                                                  Functions
  2648.  
  2649.        input_dollar
  2650.        -------------------------------------------------------------------
  2651.        Summary:       #include "extlib.h"
  2652.                       int input_dollar(row, col, length, dollar);
  2653.                       int row, col;            (screen position)
  2654.                       int length;              (data entry field's length)
  2655.                       double *dollar;          (data     entry     field's
  2656.                                                contents)
  2657.  
  2658.        Description:   The input_dollar  function  displays  and  inputs  a
  2659.                       right-justified dollar  value (dollar) with  a field
  2660.                       length of (length)  at the  display screen  position
  2661.                       defined by (row,  col).  The following  control keys
  2662.                       are active during the input_dollar function:
  2663.  
  2664.                       ====================================================
  2665.                       Control Key              Action
  2666.                       ----------------------------------------------------
  2667.                       HOME                     Clear   the    data   entry
  2668.                                                field's contents.
  2669.                       BACKSPACE                Erase   the   last    digit
  2670.                                                entered.
  2671.                       ====================================================
  2672.  
  2673.        Return Value:  The input_dollar function  returns the value  of the
  2674.                       last key pressed.
  2675.  
  2676.        See Also:      display_dollar
  2677.  
  2678.        Example:       The following program  demonstrates the input_dollar
  2679.                       function by requesting an account balance.
  2680.  
  2681.                       /* input_dollar demo */
  2682.                       #include <stdlib.h>
  2683.                       #include "extlib.h"
  2684.  
  2685.                       main()
  2686.                       {
  2687.                            double n = 0;
  2688.  
  2689.                            save_initial_video();
  2690.                            printstring(10, 1,
  2691.                                 "Please Enter The Account Balance:");
  2692.                            while (input_dollar(10, 35, 10, &n) != 27);
  2693.                            exit(0);
  2694.                       }
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.                                                                         36                                                                        36
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.                                                                  Functions
  2714.  
  2715.        input_number
  2716.        -------------------------------------------------------------------
  2717.        Summary:       #include "extlib.h"
  2718.                       int input_number(row, col, length, number);
  2719.                       int row, col;            (screen position)
  2720.                       int length;              (data entry field's length)
  2721.                       unsigned long *number;   (data     entry     field's
  2722.                                                contents)
  2723.  
  2724.        Description:   The input_number  function  displays  and  inputs  a
  2725.                       right-justified numeric value  (number) with a field
  2726.                       length of (length)  at the  display screen  position
  2727.                       defined by (row,  col).  The following  control keys
  2728.                       are active during the input_number function:
  2729.  
  2730.                       ====================================================
  2731.                       Control Key              Action
  2732.                       ----------------------------------------------------
  2733.                       HOME                     Clear   the    data   entry
  2734.                                                field's contents.
  2735.                       BACKSPACE                Erase   the   last    digit
  2736.                                                entered.
  2737.                       ====================================================
  2738.  
  2739.        Return Value:  The input_number function  returns the value  of the
  2740.                       last key pressed.
  2741.  
  2742.        See Also:      display_number
  2743.  
  2744.        Example:       The following program  demonstrates the input_number
  2745.                       function by requesting an account number.
  2746.  
  2747.                       /* input_number demo */
  2748.                       #include <stdlib.h>
  2749.                       #include "extlib.h"
  2750.  
  2751.                       main()
  2752.                       {
  2753.                            unsigned long n = 0;
  2754.  
  2755.                            save_initial_video();
  2756.                            printstring(10, 1,
  2757.                                 "Please Enter The Account Number:");
  2758.                            while (input_number(10, 34, 6, &n) != 27);
  2759.                            exit(0);
  2760.                       }
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.                                                                         37                                                                        37
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.                                                                  Functions
  2780.  
  2781.        input_phone
  2782.        -------------------------------------------------------------------
  2783.        Summary:       #include "extlib.h"
  2784.                       int input_phone(row, col, number);
  2785.                       int row, col;            (screen position)
  2786.                       PHONE *number;           (data     entry     field's
  2787.                                                contents)
  2788.  
  2789.        Description:   The input_phone  function displays and  inputs a 14-
  2790.                       character  telephone number  (number  = "(xxx)  xxx-
  2791.                       xxxx") at  the display  screen  position defined  by
  2792.                       (row,  col).  The  following keys are  active during
  2793.                       the input_phone function:
  2794.  
  2795.                       ====================================================
  2796.                       Control Key              Action
  2797.                       ----------------------------------------------------
  2798.                       HOME                     Move to the first character
  2799.                                                in the data entry field.
  2800.                       END                      Move to the  last character
  2801.                                                in the data entry field.
  2802.                       LEFT ARROW               Move   to    the   previous
  2803.                                                character in the data entry
  2804.                                                field.
  2805.                       RIGHT ARROW              Move to the  next character
  2806.                                                in the data entry field.
  2807.                       ====================================================
  2808.  
  2809.        Return Value:  The input_phone  function returns  the value  of the
  2810.                       last key pressed.
  2811.  
  2812.        See Also:      display_phone and phone_string
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.                                                                         38                                                                        38
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.                                                                  Functions
  2846.  
  2847.        Example:       The following  program demonstrates  the input_phone
  2848.                       function  by  requesting  the  operator's  telephone
  2849.                       number.
  2850.  
  2851.                       /* input_phone demo */
  2852.                       #include <stdlib.h>
  2853.                       #include "extlib.h"
  2854.  
  2855.                       main()
  2856.                       {
  2857.                            static PHONE n;
  2858.  
  2859.                            save_initial_video();
  2860.                            printstring(10, 1,
  2861.                                 "Please Enter Your Phone Number:");
  2862.                            while (input_phone(10, 33, &n) != 27);
  2863.                            exit(0);
  2864.                       }
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.                                                                         39                                                                        39
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.                                                                  Functions
  2912.  
  2913.        input_ssn
  2914.        -------------------------------------------------------------------
  2915.        Summary:       #include "extlib.h"
  2916.                       int input_ssn(row, col, number);
  2917.                       int row, col;            (screen position)
  2918.                       SSN *number;             (data     entry     field's
  2919.                                                contents)
  2920.  
  2921.        Description:   The input_ssn  function displays and  inputs an  11-
  2922.                       character Social Security number (number =  "xxx-xx-
  2923.                       xxxx") at  the display  screen  position defined  by
  2924.                       (row, col).   The following control keys  are active
  2925.                       during the input_ssn function:
  2926.  
  2927.                       ====================================================
  2928.                       Control Key              Action
  2929.                       ----------------------------------------------------
  2930.                       HOME                     Move to the first character
  2931.                                                in the data entry field.
  2932.                       END                      Move to the  last character
  2933.                                                in the data entry field.
  2934.                       LEFT ARROW               Move   to    the   previous
  2935.                                                character in the data entry
  2936.                                                field.
  2937.                       RIGHT ARROW              Move to the  next character
  2938.                                                in the data entry field.
  2939.                       ====================================================
  2940.  
  2941.        Return Value:  The input_ssn function returns the value of the last
  2942.                       key pressed.
  2943.  
  2944.        See Also:      display_ssn and ssn_string
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.                                                                         40                                                                        40
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.                                                                  Functions
  2978.  
  2979.        Example:       The  following  program demonstrates  the  input_ssn
  2980.                       function   by  requesting   the  operator's   Social
  2981.                       Security number.
  2982.  
  2983.                       /* input_ssn demo */
  2984.                       #include <stdlib.h>
  2985.                       #include "extlib.h"
  2986.  
  2987.                       main()
  2988.                       {
  2989.                            static SSN n;
  2990.  
  2991.                            save_initial_video();
  2992.                            printstring(10, 1, "Please Enter Your
  2993.                                 Social Security Number:");
  2994.                            while (input_ssn(10, 43, &n) != 27);
  2995.                            exit(0);
  2996.                       }
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.                                                                         41                                                                        41
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.                                                                  Functions
  3044.  
  3045.        input_string
  3046.        -------------------------------------------------------------------
  3047.        Summary:       #include "extlib.h"
  3048.                       int input_string(row, col, length, string);
  3049.                       int row, col;            (screen position)
  3050.                       int length;              (data entry field's length)
  3051.                       char *string;            (data     entry     field's
  3052.                                                contents)
  3053.  
  3054.        Description:   The input_string  function  displays  and  inputs  a
  3055.                       left-justified alphanumeric  string (string)  with a
  3056.                       field  length  of  (length)  at the  display  screen
  3057.                       position  defined by  (row,  col).    The  following
  3058.                       control  keys  are  active during  the  input_string
  3059.                       function:
  3060.  
  3061.                       ====================================================
  3062.                       Control Key              Action
  3063.                       ----------------------------------------------------
  3064.                       HOME                     Clear   the    data   entry
  3065.                                                field's contents.
  3066.                       BACKSPACE                Erase   the    last   digit
  3067.                                                entered.
  3068.                       ====================================================
  3069.  
  3070.        Return Value:  The input_string function  returns the value of  the
  3071.                       last key pressed.
  3072.  
  3073.        See Also:      display_string
  3074.  
  3075.        Example:       The following program  demonstrates the input_string
  3076.                       function by requesting the operator's name.
  3077.  
  3078.                       /* input_string demo */
  3079.                       #include <stdlib.h>
  3080.                       #include "extlib.h"
  3081.  
  3082.                       main()
  3083.                       {
  3084.                            static char string[31];
  3085.  
  3086.                            save_initial_video();
  3087.                            printstring(10, 1,
  3088.                                 "Please Enter Your Name:");
  3089.                            while (input_string(10, 25, 30, string) != 27);
  3090.                            exit(0);
  3091.                       }
  3092.  
  3093.  
  3094.  
  3095.  
  3096.                                                                         42                                                                        42
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.                                                                  Functions
  3110.  
  3111.        keypressed
  3112.        -------------------------------------------------------------------
  3113.        Summary:       #include "extlib.h"
  3114.                       int keypressed(void);
  3115.  
  3116.        Description:   The keypressed  function checks to see if  a key has
  3117.                       been pressed.
  3118.  
  3119.        Return Value:  The  keypressed function returns  TRUE (1) if  a key
  3120.                       has been pressed  or FALSE (0) if a  key hasn't been
  3121.                       pressed.
  3122.  
  3123.        See Also:      waitkey
  3124.  
  3125.        Example:       The  following program  demonstrates the  keypressed
  3126.                       function  by continuously  looping  until a  key has
  3127.                       been pressed.
  3128.  
  3129.                       /* keypressed demo */
  3130.                       #include <stdlib.h>
  3131.                       #include "extlib.h"
  3132.  
  3133.                       main()
  3134.                       {
  3135.                            save_initial_video();
  3136.                            printstring(1, 1, "Press a key to exit.....");
  3137.                            while (!keypressed()) ;
  3138.                            exit(0);
  3139.                       }
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.                                                                         43                                                                        43
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.                                                                  Functions
  3176.  
  3177.        movescreen
  3178.        -------------------------------------------------------------------
  3179.        Summary:       #include "extlib.h"
  3180.                       void movescreen(row1, col1, row2, col2, row3, col3);
  3181.                       int row1, col1;          (upper left  corner of  the
  3182.                                                text window)
  3183.                       int row2, col2;          (lower right corner  of the
  3184.                                                text window)
  3185.                       int row3, col3;          (upper left corner  for the
  3186.                                                text window's new location)
  3187.  
  3188.        Description:   The movescreen function moves a  text window defined
  3189.                       by  the coordinates (row1, col1) and (row2, col2) to
  3190.                       the new position starting at the (row3, col3).
  3191.  
  3192.        Return Value:  No value is returned.
  3193.  
  3194.        Example:       The  following program  demonstrates the  movescreen
  3195.                       function by moving  a portion of the  display screen
  3196.                       upper left corner to its upper right half.
  3197.  
  3198.                       /* movescreen demo */
  3199.                       #include <stdlib.h>
  3200.                       #include "extlib.h"
  3201.  
  3202.                       main()
  3203.                       {
  3204.                            settext80();
  3205.                            waitkey();
  3206.                            movescreen(1, 1, 10, 25, 1, 41);
  3207.                            waitkey();
  3208.                            exit(0);
  3209.                       }
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.                                                                         44                                                                        44
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.                                                                  Functions
  3242.  
  3243.        phone_string
  3244.        -------------------------------------------------------------------
  3245.        Summary:       #include "extlib.h"
  3246.                       char *phone_string(string, number);
  3247.                       char *string;            (storage  location for  the
  3248.                                                phone number string)
  3249.                       PHONE *number;           (phone number structure)
  3250.  
  3251.        Description:   The phone_string function  constructs a 14-character
  3252.                       phone number string (string  = "(xxx) xxx-xxxx") for
  3253.                       the phone number defined by (number).
  3254.  
  3255.        Return Value:  The phone_string function returns  a pointer to  the
  3256.                       resulting phone number string.
  3257.  
  3258.        See Also:      display_phone and input_phone
  3259.  
  3260.        Example:       The following program  demonstrates the phone_string
  3261.                       function by  displaying a  constructed phone  number
  3262.                       string on the tenth line of the display screen.
  3263.  
  3264.                       /* phone_string demo */
  3265.                       #include <stdlib.h>
  3266.                       #include "extlib.h"
  3267.  
  3268.                       main()
  3269.                       {
  3270.                            static PHONE n = {207, 555, 3235};
  3271.                            char line[80];
  3272.  
  3273.                            save_initial_video();
  3274.                            printstring(10, 1, phone_string(line, &n));
  3275.                            waitkey();
  3276.                            exit(0);
  3277.                       }
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.                                                                         45                                                                        45
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.                                                                  Functions
  3308.  
  3309.        popup
  3310.        -------------------------------------------------------------------
  3311.        Summary:       #include "extlib.h"
  3312.                       int popup(row, col, number, menu, ESC_flag);
  3313.                       int row, col;            (screen position)
  3314.                       int number;              (number of menu items)
  3315.                       MENU *menu;              (pointer  to  an  array  of
  3316.                                                MENU structures)
  3317.                       int ESC_flag;            (ESC key flag)
  3318.  
  3319.        Description:   The popup  function displays  a pop-up  menu at  the
  3320.                       display screen  coordinates defined  by (row,  col).
  3321.                       Selection of a menu item is accomplished by pressing
  3322.                       the desired  item's indicated hotkey.   Furthermore,
  3323.                       the  highlighted  menu  item   can  be  selected  by
  3324.                       pressing  the <ENTER> key.  Help, if it's available,
  3325.                       can  be requested for  the highlighted menu  item by
  3326.                       pressing <F1>.   The  highlighting can  be moved  by
  3327.                       pressing the <UP ARROW> or <DOWN ARROW> key.
  3328.  
  3329.        Return Value:  If the pop-up  menu's ESC_flag is  TRUE (1) and  the
  3330.                       <ESC> key is  pressed, the popup function  returns a
  3331.                       value of  27.   Otherwise, the  popup function  will
  3332.                       return a value of 0.
  3333.  
  3334.        Example:       The   following  program   demonstrates  the   popup
  3335.                       function  by  displaying a  three-item  pop-up menu.
  3336.                       The pop-up menu will be continuously displayed until
  3337.                       the  "Exit the Program" menu item is selected by the
  3338.                       operator.
  3339.  
  3340.                       /* popup demo */
  3341.                       #include <stdlib.h>
  3342.                       #include <string.h>
  3343.                       #include "extlib.h"
  3344.  
  3345.                       void save_file(void);
  3346.                       void load_file(void);
  3347.                       void exit_prog(void);
  3348.                       void sf_help(void);
  3349.                       void lf_help(void);
  3350.                       void ep_help(void);
  3351.  
  3352.                       static MENU menu[3] = {
  3353.                            {"Save the File", 0, save_file, sf_help},
  3354.                            {"Load the File", 0, load_file, lf_help},
  3355.                            {"Exit the Program", 0, exit_prog, ep_help} };
  3356.  
  3357.                       void main(void)
  3358.                       {
  3359.  
  3360.                                                                         46                                                                        46
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.                                                                  Functions
  3374.  
  3375.                            save_initial_video();
  3376.                            while (!popup(3, 30, 3, menu, TRUE)) ;
  3377.                            exit(0);
  3378.                       }
  3379.  
  3380.                       void save_file(void)
  3381.                       {
  3382.                            printcenter(19, 40, "Save File Function");
  3383.                            waitkey();
  3384.                            clearscreen(19, 1, 19, 80, 7);
  3385.                       }
  3386.  
  3387.                       void load_file(void)
  3388.                       {
  3389.                            printcenter(19, 40, "Load File Function");
  3390.                            waitkey();
  3391.                            clearscreen(19, 1, 19, 80, 7);
  3392.                       }
  3393.  
  3394.                       void exit_prog(void)
  3395.                       {
  3396.                            exit(0);
  3397.                       }
  3398.  
  3399.                       void sf_help(void)
  3400.                       {
  3401.                            printcenter(19, 40, "Save File Help Function");
  3402.                            waitkey();
  3403.                            clearscreen(19, 1, 19, 80, 7);
  3404.                       }
  3405.  
  3406.                       void lf_help(void)
  3407.                       {
  3408.                            printcenter(19, 40, "Load File Help Function");
  3409.                            waitkey();
  3410.                            clearscreen(19, 1, 19, 80, 7);
  3411.                       }
  3412.  
  3413.                       void ep_help(void)
  3414.                       {
  3415.                            printcenter(19, 40,
  3416.                                 "Exit Program Help Function");
  3417.                            waitkey();
  3418.                            clearscreen(19, 1, 19, 80, 7);
  3419.                       }
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.                                                                         47                                                                        47
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.                                                                  Functions
  3440.  
  3441.        printcenter
  3442.        -------------------------------------------------------------------
  3443.        Summary:       #include "extlib.h"
  3444.                       void printcenter(row, col, string);
  3445.                       int row;                 (row)
  3446.                       int col;                 (column   to   center   the
  3447.                                                string on)
  3448.                       char *string;            (string pointer)
  3449.  
  3450.        Description:   The printcenter function displays a string  (string)
  3451.                       on  the  display  screen row  defined  by  (row) and
  3452.                       centered on the column defined by (col).
  3453.  
  3454.        Return Value:  No value is returned.
  3455.  
  3456.        Example:       The following  program demonstrates  the printcenter
  3457.                       function by  centering a string  on the top  line of
  3458.                       the display screen.
  3459.  
  3460.                       /* printcenter demo */
  3461.                       #include <stdlib.h>
  3462.                       #include "extlib.h"
  3463.  
  3464.                       main()
  3465.                       {
  3466.                            save_initial_video();
  3467.                            printcenter(1, 40, "This message is centered on
  3468.                                 the top display line");
  3469.                            waitkey();
  3470.                            exit(0);
  3471.                       }
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.                                                                         48                                                                        48
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.                                                                  Functions
  3506.  
  3507.        printone
  3508.        -------------------------------------------------------------------
  3509.        Summary:       #include "extlib.h"
  3510.                       void printone(row, col, chr);
  3511.                       int row, col;            (screen position)
  3512.                       int chr;                 (character)
  3513.  
  3514.  
  3515.        Description:   The printone function displays a character (chr)  at
  3516.                       the display screen position defined by (row, col).
  3517.  
  3518.        Return Value:  No value is returned.
  3519.  
  3520.        Example:       The  following  program  demonstrates  the  printone
  3521.                       function  by  displaying  a   Z  at  display  screen
  3522.                       position (5, 40).
  3523.  
  3524.                       /* printone demo */
  3525.                       #include <stdlib.h>
  3526.                       #include "extlib.h"
  3527.  
  3528.                       main()
  3529.                       {
  3530.                            save_initial_video();
  3531.                            printone(5, 40, 'Z');
  3532.                            waitkey();
  3533.                            exit(0);
  3534.                       }
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.                                                                         49                                                                        49
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.                                                                  Functions
  3572.  
  3573.        printstring
  3574.        -------------------------------------------------------------------
  3575.        Summary:       #include "extlib.h"
  3576.                       void printstring(row, col, string);
  3577.                       int row, col;            (screen position)
  3578.                       char *string;            (string pointer)
  3579.  
  3580.        Description:   The printstring function  displays a string (string)
  3581.                       at  the display  screen  position defined  by  (row,
  3582.                       col).
  3583.  
  3584.        Return Value:  No value is returned.
  3585.  
  3586.        Example:       The following  program demonstrates  the printstring
  3587.                       function by  displaying a  string at  display screen
  3588.                       position (2, 10).
  3589.  
  3590.                       /* printstring demo */
  3591.                       #include <stdlib.h>
  3592.                       #include "extlib.h"
  3593.  
  3594.                       main()
  3595.                       {
  3596.                            save_initial_video();
  3597.                            printstring(2, 10, "This message starts at
  3598.                                 row 2, column 10");
  3599.                            waitkey();
  3600.                            exit(0);
  3601.                       }
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.                                                                         50                                                                        50
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.                                                                  Functions
  3638.  
  3639.        pulldown
  3640.        -------------------------------------------------------------------
  3641.        Summary:       #include "extlib.h"
  3642.                       int pulldown(row, number, menus, ikey, help);
  3643.                       int row;                 (menu bar row)
  3644.                       int number;              (number of pull-down menus)
  3645.                       MENU_HEAD *menus;        (pointer  to  an  array  of
  3646.                                                MENU_HEAD structures)
  3647.                       int ikey;                (initial key)
  3648.                       void (*help)(void);      (overall    help   function
  3649.                                                pointer)
  3650.  
  3651.        Description:   The pulldown  function is used to implement multiple
  3652.                       pull-down menus.   The number of pull-down  menus is
  3653.                       defined  by   (number).     The  pulldown   function
  3654.                       recognizes the following control keys:
  3655.  
  3656.                       ====================================================
  3657.                       Control Key              Action
  3658.                       ----------------------------------------------------
  3659.                       ALT + Heading Hotkey     Pulls  down  the  indicated
  3660.                                                menu.
  3661.                       ESC                      Removes  the  current  menu
  3662.                                                from the screen.
  3663.                       LEFT ARROW               Removes  the  current  menu
  3664.                                                from the  screen and  pulls
  3665.                                                down the  next menu  to the
  3666.                                                left.
  3667.                       RIGHT ARROW              Removes  the  current  menu
  3668.                                                from the  screen and  pulls
  3669.                                                down the  next menu  to the
  3670.                                                right.
  3671.                       Menu Item Hotkey         Executes the selected  menu
  3672.                                                item's function.
  3673.                       ENTER                    Executes   the  highlighted
  3674.                                                menu item's function.
  3675.                       F1                       If  a   menu  hasn't   been
  3676.                                                pulled  down, executes  the
  3677.                                                overall    help    function
  3678.                                                defined      by     (help).
  3679.                                                Otherwise,   executes   the
  3680.                                                highlighted   menu   item's
  3681.                                                help function.
  3682.                       UP ARROW                 Moves the highlight  bar up
  3683.                                                to the previous menu item.
  3684.                       DOWN ARROW               Moves  the   highlight  bar
  3685.                                                down to the next menu item.
  3686.                       ====================================================
  3687.  
  3688.                       An  initial key value  can be  sent to  the pulldown
  3689.  
  3690.                                                                         51                                                                        51
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.                                                                  Functions
  3704.  
  3705.                       function by placing the appropriate value in (ikey).
  3706.                       Otherwise,  (ikey) must  equal  zero to  indicate no
  3707.                       initial key.
  3708.  
  3709.        Return Value:  If a menu item isn't selected, the pulldown function
  3710.                       returns  the   value  of   the  last  key   pressed.
  3711.                       Otherwise, the pulldown function returns a  value of
  3712.                       zero.
  3713.  
  3714.        See Also:      pulldown_bar
  3715.  
  3716.        Example:       The following program demonstrates  how the pulldown
  3717.                       function  is used to implement a series of pull-down
  3718.                       menus for a simple general ledger program.
  3719.  
  3720.                       /* pulldown/pulldown_bar demo */
  3721.                       #include <stdio.h>
  3722.                       #include <stdlib.h>
  3723.                       #include <string.h>
  3724.                       #include "extlib.h"
  3725.  
  3726.                       void save_file(void);
  3727.                       void read_file(void);
  3728.                       void exit_prog(void);
  3729.                       void add_acc(void);
  3730.                       void del_acc(void);
  3731.                       void add_tra(void);
  3732.                       void del_tra(void);
  3733.                       void prt_coa(void);
  3734.                       void led_upd(void);
  3735.                       void fin_stat(void);
  3736.                       void read_func(void);
  3737.                       void sf_help(void);
  3738.                       void rf_help(void);
  3739.                       void aa_help(void);
  3740.                       void da_help(void);
  3741.                       void at_help(void);
  3742.                       void dt_help(void);
  3743.                       void pc_help(void);
  3744.                       void lu_help(void);
  3745.                       void fs_help(void);
  3746.                       void main_help(void);
  3747.  
  3748.                       static MENU file[3] = {
  3749.                            {"Save the File", 0, save_file, sf_help},
  3750.                            {"Read the File", 0, read_file, rf_help},
  3751.                            {"Exit the Program", 0, exit_prog, NULL} };
  3752.  
  3753.                       static MENU accounts[2] = {
  3754.                            {"Add an Account", 0, add_acc, aa_help},
  3755.  
  3756.                                                                         52                                                                        52
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.                                                                  Functions
  3770.  
  3771.                            {"Delete an Account", 0, del_acc, da_help} };
  3772.  
  3773.                       static MENU transact[2] = {
  3774.                            {"Add a Transaction", 0, add_tra, at_help},
  3775.                            {"Delete a Transaction", 0, del_tra,
  3776.                                 dt_help} };
  3777.  
  3778.                       static MENU print[3] = {
  3779.                            {"Print a Chart of Accounts", 8, prt_coa,
  3780.                                 pc_help},
  3781.                            {"Print a Ledger Update", 15, led_upd,
  3782.                                 lu_help},
  3783.                            {"Print Financial Statements", 6, fin_stat,
  3784.                                  fs_help} };
  3785.  
  3786.                       static MENU read[1] = {
  3787.                            {"", 0, read_func, NULL} };
  3788.  
  3789.                       static MENU_HEAD heads[5] = {
  3790.                            {"File", 0, 3, file},
  3791.                            {"Accounts", 0, 2, accounts},
  3792.                            {"Transactions", 0, 2, transact},
  3793.                            {"Print", 0, 3, print},
  3794.                            {"Read", 0, 1, read} };
  3795.  
  3796.                       void main(void)
  3797.                       {
  3798.                            save_initial_video();
  3799.                            setcurpos(15, 1);
  3800.                            cursoron();
  3801.                            pulldown_bar(1, 5, heads);
  3802.                            while (TRUE) {
  3803.                                 int key = pulldown(1, 5, heads, 0,
  3804.                                      main_help);
  3805.                                 setcurpos(15, 1);
  3806.                                 printf("%4d\n", key);
  3807.                            }
  3808.                       }
  3809.  
  3810.                       void save_file(void)
  3811.                       {
  3812.                            printcenter(19, 40, "Save File Function");
  3813.                            waitkey();
  3814.                            clearscreen(19, 1, 19, 80, 7);
  3815.                       }
  3816.  
  3817.                       void read_file(void)
  3818.                       {
  3819.                            printcenter(19, 40, "Read File Function");
  3820.                            waitkey();
  3821.  
  3822.                                                                         53                                                                        53
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.                                                                  Functions
  3836.  
  3837.                            clearscreen(19, 1, 19, 80, 7);
  3838.                       }
  3839.  
  3840.                       void exit_prog(void)
  3841.                       {
  3842.                            exit(0);
  3843.                       }
  3844.  
  3845.                       void add_acc(void)
  3846.                       {
  3847.                            printcenter(19, 40, "Add Account Function");
  3848.                            waitkey();
  3849.                            clearscreen(19, 1, 19, 80, 7);
  3850.                       }
  3851.  
  3852.                       void del_acc(void)
  3853.                       {
  3854.                            printcenter(19, 40, "Delete Account Function");
  3855.                            waitkey();
  3856.                            clearscreen(19, 1, 19, 80, 7);
  3857.                       }
  3858.  
  3859.                       void add_tra(void)
  3860.                       {
  3861.                            printcenter(19, 40,
  3862.                                 "Add Transaction Function");
  3863.                            waitkey();
  3864.                            clearscreen(19, 1, 19, 80, 7);
  3865.                       }
  3866.  
  3867.                       void del_tra(void)
  3868.                       {
  3869.                            printcenter(19, 40,
  3870.                                 "Delete Transaction Function");
  3871.                            waitkey();
  3872.                            clearscreen(19, 1, 19, 80, 7);
  3873.                       }
  3874.  
  3875.                       void prt_coa(void)
  3876.                       {
  3877.                            printcenter(19, 40,
  3878.                                 "Print Chart of Accounts Function");
  3879.                            waitkey();
  3880.                            clearscreen(19, 1, 19, 80, 7);
  3881.                       }
  3882.  
  3883.                       void led_upd(void)
  3884.                       {
  3885.                            printcenter(19, 40,
  3886.                                 "Ledger Update Function");
  3887.  
  3888.                                                                         54                                                                        54
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.                                                                  Functions
  3902.  
  3903.                            waitkey();
  3904.                            clearscreen(19, 1, 19, 80, 7);
  3905.                       }
  3906.  
  3907.                       void fin_stat(void)
  3908.                       {
  3909.                            printcenter(19, 40,
  3910.                                 "Financial Statements Function");
  3911.                            waitkey();
  3912.                            clearscreen(19, 1, 19, 80, 7);
  3913.                       }
  3914.  
  3915.                       void read_func(void)
  3916.                       {
  3917.                            printcenter(19, 40, "Read Test Function");
  3918.                            waitkey();
  3919.                            clearscreen(19, 1, 19, 80, 7);
  3920.                       }
  3921.  
  3922.                       void sf_help(void)
  3923.                       {
  3924.                            printcenter(20, 40, "Save File Help Function");
  3925.                            waitkey();
  3926.                            clearscreen(20, 1, 20, 80, 7);
  3927.                       }
  3928.  
  3929.                       void rf_help(void)
  3930.                       {
  3931.                            printcenter(20, 40, "Read File Help Function");
  3932.                            waitkey();
  3933.                            clearscreen(20, 1, 20, 80, 7);
  3934.                       }
  3935.  
  3936.                       void aa_help(void)
  3937.                       {
  3938.                            printcenter(20, 40,
  3939.                                 "Add Account Help Function");
  3940.                            waitkey();
  3941.                            clearscreen(20, 1, 20, 80, 7);
  3942.                       }
  3943.  
  3944.                       void da_help(void)
  3945.                       {
  3946.                            printcenter(20, 40,
  3947.                                 "Delete Account Help Function");
  3948.                            waitkey();
  3949.                            clearscreen(20, 1, 20, 80, 7);
  3950.                       }
  3951.  
  3952.                       void at_help(void)
  3953.  
  3954.                                                                         55                                                                        55
  3955.  
  3956.  
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.                                                                  Functions
  3968.  
  3969.                       {
  3970.                            printcenter(20, 40,
  3971.                                 "Add Transaction Help Function");
  3972.                            waitkey();
  3973.                            clearscreen(20, 1, 20, 80, 7);
  3974.                       }
  3975.  
  3976.                       void dt_help(void)
  3977.                       {
  3978.                            printcenter(20, 40,
  3979.                                 "Delete Transaction Help Function");
  3980.                            waitkey();
  3981.                            clearscreen(20, 1, 20, 80, 7);
  3982.                       }
  3983.  
  3984.                       void pc_help(void)
  3985.                       {
  3986.                            printcenter(20, 40,
  3987.                                 "Print Chart of Accounts Help Function");
  3988.                            waitkey();
  3989.                            clearscreen(20, 1, 20, 80, 7);
  3990.                       }
  3991.  
  3992.                       void lu_help(void)
  3993.                       {
  3994.                            printcenter(20, 40,
  3995.                                 "Ledger Update Help Function");
  3996.                            waitkey();
  3997.                            clearscreen(20, 1, 20, 80, 7);
  3998.                       }
  3999.  
  4000.                       void fs_help(void)
  4001.                       {
  4002.                            printcenter(20, 40,
  4003.                                 "Financial Statements Help Function");
  4004.                            waitkey();
  4005.                            clearscreen(20, 1, 20, 80, 7);
  4006.                       }
  4007.  
  4008.                       void main_help(void)
  4009.                       {
  4010.                            printcenter(20, 40, "Main Help Function");
  4011.                            waitkey();
  4012.                            clearscreen(20, 1, 20, 80, 7);
  4013.                       }
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.  
  4020.                                                                         56                                                                        56
  4021.  
  4022.  
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.                                                                  Functions
  4034.  
  4035.        pulldown_bar
  4036.        -------------------------------------------------------------------
  4037.        Summary:       #include "extlib.h"
  4038.                       void pulldown_bar(row, number, menus);
  4039.                       int row;                 (menu bar row)
  4040.                       int number;              (number of pull-down menus)
  4041.                       MENU_HEAD *menus;        (pointer  to  an  array  of
  4042.                                                MENU_HEAD structures)
  4043.  
  4044.        Description:   The pulldown_bar function is used to display a pull-
  4045.                       down menu bar on the line defined by (row).
  4046.  
  4047.        Return Value:  No value is returned.
  4048.  
  4049.        See Also:      pulldown
  4050.  
  4051.        Example:       For  a demonstration  of the  pulldown_bar function,
  4052.                       see the pulldown function's example program.
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085.  
  4086.                                                                         57                                                                        57
  4087.  
  4088.  
  4089.  
  4090.  
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.                                                                  Functions
  4100.  
  4101.        readmouse
  4102.        -------------------------------------------------------------------
  4103.        Summary:       #include "extlib.h"
  4104.                       void readmouse(void);
  4105.  
  4106.        Description:   The readmouse  function determines  the mouse's  row
  4107.                       position,  column  position,   left  button  status,
  4108.                       center button status, and right button status.
  4109.  
  4110.        Return Value:  No value is returned.
  4111.  
  4112.        See Also:      center_button,  left_button,  mouse_col,  mouse_row,
  4113.                       and right_button
  4114.  
  4115.        Example:       The  following  program demonstrates  the  readmouse
  4116.                       function  by  continuously  displaying  the  mouse's
  4117.                       current status.
  4118.  
  4119.                       /* readmouse demo */
  4120.                       #include <stdio.h>
  4121.                       #include <stdlib.h>
  4122.                       #include "extlib.h"
  4123.  
  4124.                       main()
  4125.                       {
  4126.                            save_initial_video();
  4127.                            do {
  4128.                                 readmouse();
  4129.                                 setcurpos(1, 1);
  4130.                                 printf("Mouse Row: %3d\n", mouse_row);
  4131.                                 printf("Mouse Column: %3d\n", mouse_col);
  4132.                                 printf("Mouse Left Button Status: %d\n",
  4133.                                      left_button);
  4134.                                 printf("Mouse Center Button Status: %d\n",
  4135.                                      center_button);
  4136.                                 printf("Mouse Right Button Status: %d\n",
  4137.                                      right_button);
  4138.                            } while (!keypressed()) ;
  4139.                            waitkey();
  4140.                            exit(0);
  4141.                       }
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147.  
  4148.  
  4149.  
  4150.  
  4151.  
  4152.                                                                         58                                                                        58
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.                                                                  Functions
  4166.  
  4167.        resetmouse
  4168.        -------------------------------------------------------------------
  4169.        Summary:       #include "extlib.h"
  4170.                       void resetmouse(void);
  4171.  
  4172.        Description:   The resetmouse function resets the mouse driver.
  4173.  
  4174.        Return Value:  No value is returned.
  4175.  
  4176.        Example:       The  following program  demonstrates the  resetmouse
  4177.                       function by resetting the mouse driver.
  4178.  
  4179.                       /* resetmouse demo */
  4180.                       #include <stdio.h>
  4181.                       #include <stdlib.h>
  4182.                       #include "extlib.h"
  4183.  
  4184.                       main()
  4185.                       {
  4186.                            settext80();
  4187.                            resetmouse();
  4188.                            showmouse();
  4189.                            do {
  4190.                                 readmouse();
  4191.                            } while (!keypressed() && !left_button);
  4192.                            hidemouse();
  4193.                            if (keypressed())
  4194.                                 waitkey();
  4195.                            exit(0);
  4196.                       }
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218.                                                                         59                                                                        59
  4219.  
  4220.  
  4221.  
  4222.  
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  
  4229.  
  4230.  
  4231.                                                                  Functions
  4232.  
  4233.        restorescreen
  4234.        -------------------------------------------------------------------
  4235.        Summary:       #include "extlib.h"
  4236.                       void restorescreen(row1, col1, row2, col2, buffer);
  4237.                       int row1, col1;          (upper left  corner of  the
  4238.                                                text window)
  4239.                       int row2, col2;          (lower right corner  of the
  4240.                                                text window)
  4241.                       char *buffer;            (buffer pointer)
  4242.  
  4243.        Description:   The restorescreen  function displays a  text window,
  4244.                       which  has been previously saved in (buffer), at the
  4245.                       coordinates  defined  by  (row1,  col1)  and  (row2,
  4246.                       col2).  Because each of the text window's characters
  4247.                       consists of a  character/attribute pair, the  buffer
  4248.                       must be ((row2 - row1 + 1) * (col2 -  col1 + 1) * 2)
  4249.                       bytes long.
  4250.  
  4251.        Return Value:  No value is returned.
  4252.  
  4253.        See Also:      savescreen
  4254.  
  4255.        Example:       The following program demonstrates the restorescreen
  4256.                       function  by  displaying  a  previously  saved  text
  4257.                       window.
  4258.  
  4259.                       /* restorescreen demo */
  4260.                       #include <stdio.h>
  4261.                       #include <stdlib.h>
  4262.                       #include "extlib.h"
  4263.  
  4264.                       static char vbuff[4000];
  4265.  
  4266.                       main()
  4267.                       {
  4268.                            settext80();
  4269.                            savescreen(1, 1, 25, 80, vbuff);
  4270.                            clearscreen(1, 1, 25, 80, 7);
  4271.                            waitkey();
  4272.                            restorescreen(1, 1, 25, 80, vbuff);
  4273.                            waitkey();
  4274.                            exit(0);
  4275.                       }
  4276.  
  4277.  
  4278.  
  4279.  
  4280.  
  4281.  
  4282.  
  4283.  
  4284.                                                                         60                                                                        60
  4285.  
  4286.  
  4287.  
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.                                                                  Functions
  4298.  
  4299.        save_initial_video
  4300.        -------------------------------------------------------------------
  4301.        Summary:       #include "extlib.h"
  4302.                       void save_initial_video(void);
  4303.  
  4304.        Description:   The  save_initial_video  function is  called  at the
  4305.                       start  of an application  program to  initialize the
  4306.                       Extended Library's operating  environment., save the
  4307.                       cursor's  position  and  type, save  a  copy  of the
  4308.                       display screen,  clear the display screen,  turn off
  4309.                       the cursor, and turn on the mouse pointer.  When the
  4310.                       application  program  is   finished  executing,  the
  4311.                       save_initial_video   function   will   automatically
  4312.                       restore  the display  screen's initial  contents and
  4313.                       cursor settings.
  4314.  
  4315.        Return Value:  No value is returned.
  4316.  
  4317.        See Also:      settext80
  4318.  
  4319.        Example:       The    following     program    demonstrates     the
  4320.                       save_initial_video function by  saving and restoring
  4321.                       the original screen contents.
  4322.  
  4323.                       /* save_initial_video demo */
  4324.                       #include <stdio.h>
  4325.                       #include <stdlib.h>
  4326.                       #include "extlib.h"
  4327.  
  4328.                       main()
  4329.                       {
  4330.                            save_initial_video();
  4331.                            printcenter(13, 40,
  4332.                                 "This is a save_initial_video demo");
  4333.                            waitkey();
  4334.                            exit(0);
  4335.                       }
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.                                                                         61                                                                        61
  4351.  
  4352.  
  4353.  
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.                                                                  Functions
  4364.  
  4365.        savescreen
  4366.        -------------------------------------------------------------------
  4367.        Summary:       #include "extlib.h"
  4368.                       void savescreen(row1, col1, row2, col2, buffer);
  4369.                       int row1, col1;          (upper left  corner of  the
  4370.                                                text window)
  4371.                       int row2, col2;          (lower right corner  of the
  4372.                                                text window)
  4373.                       char *buffer;            (buffer pointer)
  4374.  
  4375.        Description:   The  savescreen  function   saves  the  text  window
  4376.                       defined by the  coordinates (row1, col1) and  (row2,
  4377.                       col2).  Because each of the text window's characters
  4378.                       consists  of a  character/attribute pair,   (buffer)
  4379.                       must be ((row2 - row1 + 1)  * (col2 - col1 + 1) * 2)
  4380.                       bytes long.
  4381.  
  4382.        Return Value:  No value is returned.
  4383.  
  4384.        See Also:      restorescreen
  4385.  
  4386.        Example:       The  following program  demonstrates the  savescreen
  4387.                       function by duplicating the left half of the display
  4388.                       screen onto the right half of the display screen.
  4389.  
  4390.                       /* savescreen demo */
  4391.                       #include <stdio.h>
  4392.                       #include <stdlib.h>
  4393.                       #include "extlib.h"
  4394.  
  4395.                       static char vbuff[2000];
  4396.  
  4397.                       main()
  4398.                       {
  4399.                            settext80();
  4400.                            savescreen(1, 1, 25, 40, vbuff);
  4401.                            restorescreen(1, 41, 25, 80, vbuff);
  4402.                            waitkey();
  4403.                            exit(0);
  4404.                       }
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.                                                                         62                                                                        62
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.                                                                  Functions
  4430.  
  4431.        setattrib
  4432.        -------------------------------------------------------------------
  4433.        Summary:       #include "extlib.h"
  4434.                       void setattrib(row1, col1, row2, col2, att);
  4435.                       int row1, col1;          (upper left  corner of  the
  4436.                                                text window)
  4437.                       int row2, col2;          (lower right corner  of the
  4438.                                                text window)
  4439.                       int att;                 (text window attribute)
  4440.  
  4441.        Description:   The  setattrib function sets an entire text window's
  4442.                       attributes to (att).   The text window is defined by
  4443.                       the coordinates (row1, col1) and (row2, col2).
  4444.  
  4445.        Return Value:  No value is returned.
  4446.  
  4447.        See Also:      setone
  4448.  
  4449.        Example:       The  following  program demonstrates  the  setattrib
  4450.                       function  by setting the  right half of  the display
  4451.                       screen to black characters on a white background.
  4452.  
  4453.                       /* setattrib demo */
  4454.                       #include <stdlib.h>
  4455.                       #include "extlib.h"
  4456.  
  4457.                       main()
  4458.                       {
  4459.                            save_initial_video();
  4460.                            setattrib(1, 41, 25, 80, 0x70);
  4461.                            waitkey();
  4462.                            exit(0);
  4463.                       }
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.                                                                         63                                                                        63
  4483.  
  4484.  
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.                                                                  Functions
  4496.  
  4497.        setcurpos
  4498.        -------------------------------------------------------------------
  4499.        Summary:       #include "extlib.h"
  4500.                       void setcurpos(row, col);
  4501.                       int row, col;            (cursor position)
  4502.  
  4503.        Description:   The  setcurpos  function  moves  the  cursor to  the
  4504.                       display screen position defined by (row, col).
  4505.  
  4506.        Return Value:  No value is returned.
  4507.  
  4508.        Example:       The  following  program demonstrates  the  setcurpos
  4509.                       function by moving  the cursor to the  right half of
  4510.                       the display screen's center line.
  4511.  
  4512.                       /* setcurpos demo */
  4513.                       #include <stdio.h>
  4514.                       #include <stdlib.h>
  4515.                       #include "extlib.h"
  4516.  
  4517.                       main()
  4518.                       {
  4519.                            save_initial_video();
  4520.                            setcurpos(13, 41);
  4521.                            printf("This message starts at the right half
  4522.                                 of the center line");
  4523.                            waitkey();
  4524.                            exit(0);
  4525.                       }
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.                                                                         64                                                                        64
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  
  4559.  
  4560.  
  4561.                                                                  Functions
  4562.  
  4563.        setcursor
  4564.        -------------------------------------------------------------------
  4565.        Summary:       #include "extlib.h"
  4566.                       void setcursor(sline, eline);
  4567.                       int sline;               (cursor starting line)
  4568.                       int eline;               (cursor ending line)
  4569.  
  4570.        Description:   The setcursor  function sets the  cursor character's
  4571.                       starting (sline) and ending (eline) lines.
  4572.  
  4573.        Return Value:  No value is returned.
  4574.  
  4575.        Example:       The  following  program demonstrates  the  setcursor
  4576.                       function  by  setting  the  cursor  character  to  a
  4577.                       completely filled block.
  4578.  
  4579.                       /* setcursor demo */
  4580.                       #include <stdlib.h>
  4581.                       #include "extlib.h"
  4582.  
  4583.                       main()
  4584.                       {
  4585.                            save_initial_video();
  4586.                            setcurpos(1, 1);
  4587.                            setcursor(0, 7);
  4588.                            cursoron();
  4589.                            waitkey();
  4590.                            exit(0);
  4591.                       }
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.                                                                         65                                                                        65
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.                                                                  Functions
  4628.  
  4629.        setone
  4630.        -------------------------------------------------------------------
  4631.        Summary:       #include "extlib.h"
  4632.                       void setone(row, col, att);
  4633.                       int row, col;            (screen position)
  4634.                       int att;                 (attribute)
  4635.  
  4636.  
  4637.        Description:   The  setone  function  sets  the  attribute  for the
  4638.                       display  screen position  defined by  (row, col)  to
  4639.                       (att).
  4640.  
  4641.        Return Value:  No value is returned.
  4642.  
  4643.        See Also:      setattrib
  4644.  
  4645.        Example:       The  following   program  demonstrates   the  setone
  4646.                       function  by setting the attribute for position (23,
  4647.                       2) to a black character on a white background.
  4648.  
  4649.                       /* setone demo */
  4650.                       #include <stdlib.h>
  4651.                       #include "extlib.h"
  4652.  
  4653.                       main()
  4654.                       {
  4655.                            save_initial_video();
  4656.                            setone(23, 2, 0x70);
  4657.                            waitkey();
  4658.                            exit(0);
  4659.                       }
  4660.  
  4661.  
  4662.  
  4663.  
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.  
  4677.  
  4678.  
  4679.  
  4680.                                                                         66                                                                        66
  4681.  
  4682.  
  4683.  
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.                                                                  Functions
  4694.  
  4695.        settext80
  4696.        -------------------------------------------------------------------
  4697.        Summary:       #include "extlib.h"
  4698.                       void settext80(void);
  4699.  
  4700.        Description:   The  settext80  function  initializes  the  Extended
  4701.                       Library's  operating  environment.    The  settext80
  4702.                       function should always be called before using any of
  4703.                       the  Extended   Library  functions.     (Note:   The
  4704.                       settext80  function   is  automatically   called  by
  4705.                       save_initial_video; therefore,  application programs
  4706.                       that  call  save_initial_video do  not have  to call
  4707.                       settext80.)
  4708.  
  4709.        Return Value:  No value is returned.
  4710.  
  4711.        See Also:      save_initial_video
  4712.  
  4713.        Example:       The  following  program demonstrates  the  settext80
  4714.                       function  by  initializing  the  Extended  Library's
  4715.                       operating environment.
  4716.  
  4717.                       /* settext80 demo */
  4718.                       #include <stdlib.h>
  4719.                       #include "extlib.h"
  4720.  
  4721.                       main()
  4722.                       {
  4723.                            settext80();
  4724.                            clearscreen(1, 1, 25, 80, 7);
  4725.                            setcurpos(1, 1);
  4726.                            waitkey();
  4727.                            exit(0);
  4728.                       }
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.                                                                         67                                                                        67
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.                                                                  Functions
  4760.  
  4761.        showmouse
  4762.        -------------------------------------------------------------------
  4763.        Summary:       #include "extlib.h"
  4764.                       void showmouse(void);
  4765.  
  4766.        Description:   The showmouse function turns on the mouse pointer.
  4767.  
  4768.        Return Value:  No value is returned.
  4769.  
  4770.        See Also:      hidemouse
  4771.  
  4772.        Example:       The  following  program demonstrates  the  showmouse
  4773.                       function by turning on the mouse pointer.
  4774.  
  4775.                       /* showmouse demo */
  4776.                       #include <stdlib.h>
  4777.                       #include "extlib.h"
  4778.  
  4779.                       main()
  4780.                       {
  4781.                            save_initial_video();
  4782.                            hidemouse();
  4783.                            waitkey();
  4784.                            showmouse();
  4785.                            waitkey();
  4786.                            exit(0);
  4787.                       }
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.                                                                         68                                                                        68
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.                                                                  Functions
  4826.  
  4827.        ssn_string
  4828.        -------------------------------------------------------------------
  4829.        Summary:       #include "extlib.h"
  4830.                       char *ssn_string(string, number);
  4831.                       char *string;            (storage  location for  the
  4832.                                                Social    Security   number
  4833.                                                string)
  4834.                       SSN *number;             (Social   Security   number
  4835.                                                structure)
  4836.  
  4837.        Description:   The ssn_string  function constructs  an 11-character
  4838.                       Social number  string (string  = "xxx-xx-xxxx")  for
  4839.                       the Social Security number defined by (number).
  4840.  
  4841.        Return Value:  The ssn_string  returns a  pointer to  the resulting
  4842.                       Social Security number string.
  4843.  
  4844.        See Also:      display_ssn and input_ssn
  4845.  
  4846.        Example:       The  following program  demonstrates the  ssn_string
  4847.                       function by displaying a constructed Social Security
  4848.                       number string.
  4849.  
  4850.                       /* ssn_string demo */
  4851.                       #include <stdlib.h>
  4852.                       #include "extlib.h"
  4853.  
  4854.                       main()
  4855.                       {
  4856.                            static SSN n = {007, 55, 3535};
  4857.                            char line[80];
  4858.  
  4859.                            save_initial_video();
  4860.                            printstring(10, 1, ssn_string(line, &n));
  4861.                            waitkey();
  4862.                            exit(0);
  4863.                       }
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.                                                                         69                                                                        69
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.                                                                  Functions
  4892.  
  4893.        w_close
  4894.        -------------------------------------------------------------------
  4895.        Summary:       #include "extlib.h"
  4896.                       WINDOW *w_close(window);
  4897.                       WINDOW *window;          (window)
  4898.  
  4899.        Description:   The w_close  function closes  the previously  opened
  4900.                       text window defined by (window).
  4901.  
  4902.        Return Value:  The w_close function returns a NULL pointer.
  4903.  
  4904.        See Also:      w_open
  4905.  
  4906.        Example:       The  following  program   demonstrates  the  w_close
  4907.                       function by closing a text window at the coordinates
  4908.                       (1, 20) and (15, 50).
  4909.  
  4910.                       /* w_close demo */
  4911.                       #include <stdlib.h>
  4912.                       #include "extlib.h"
  4913.  
  4914.                       main()
  4915.                       {
  4916.                            WINDOW *w;
  4917.  
  4918.                            save_initial_video();
  4919.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  4920.                            waitkey();
  4921.                            w = w_close(w);
  4922.                            exit(0);
  4923.                       }
  4924.  
  4925.  
  4926.  
  4927.  
  4928.  
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.                                                                         70                                                                        70
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.                                                                  Functions
  4958.  
  4959.        w_clreol
  4960.        -------------------------------------------------------------------
  4961.        Summary:       #include "extlib.h"
  4962.                       void w_clreol(window);
  4963.                       WINDOW *window;          (window)
  4964.  
  4965.        Description:   The w_clreol function clears the current text window
  4966.                       line from  the cursor's  current column  position to
  4967.                       the text window's right border.   The text window is
  4968.                       defined by (window).
  4969.  
  4970.        Return Value:  No value is returned.
  4971.  
  4972.        Example:       The  following  program  demonstrates  the  w_clreol
  4973.                       function by erasing a portion of a text window's top
  4974.                       line.
  4975.  
  4976.                       /* w_clreol demo */
  4977.                       #include <stdlib.h>
  4978.                       #include "extlib.h"
  4979.  
  4980.                       main()
  4981.                       {
  4982.                            int i;
  4983.                            WINDOW *w;
  4984.  
  4985.                            save_initial_video();
  4986.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  4987.                            for (i = 0; i < 10; i++)
  4988.                                 w_println(w, "This is another string");
  4989.                            waitkey();
  4990.                            w_setcurpos(w, 1, 2);
  4991.                            w_clreol(w);
  4992.                            waitkey();
  4993.                            w = w_close(w);
  4994.                            exit(0);
  4995.                       }
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001.  
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009.  
  5010.                                                                         71                                                                        71
  5011.  
  5012.  
  5013.  
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  
  5021.  
  5022.  
  5023.                                                                  Functions
  5024.  
  5025.        w_cls
  5026.        -------------------------------------------------------------------
  5027.        Summary:       #include "extlib.h"
  5028.                       void w_cls(window);
  5029.                       WINDOW *window;          (window)
  5030.  
  5031.        Description:   The w_cls function clears the text window defined by
  5032.                       (window).
  5033.  
  5034.        Return Value:  No value is returned.
  5035.  
  5036.        Example:       The   following  program   demonstrates  the   w_cls
  5037.                       function by clearing the contents of a text window.
  5038.  
  5039.                       /* w_cls demo */
  5040.                       #include <stdlib.h>
  5041.                       #include "extlib.h"
  5042.  
  5043.                       main()
  5044.                       {
  5045.                            int i;
  5046.                            WINDOW *w;
  5047.  
  5048.                            save_initial_video();
  5049.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5050.                            for (i = 0; i < 10; i++)
  5051.                                 w_println(w, "This is another string");
  5052.                            waitkey();
  5053.                            w_cls(w);
  5054.                            waitkey();
  5055.                            w = w_close(w);
  5056.                            exit(0);
  5057.                       }
  5058.  
  5059.  
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.                                                                         72                                                                        72
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.                                                                  Functions
  5090.  
  5091.        w_draw
  5092.        -------------------------------------------------------------------
  5093.        Summary:       #include "extlib.h"
  5094.                       void w_draw(row1, col1, row2, col2, watt, bflg);
  5095.                       int row1, col1;          (upper left  corner of  the
  5096.                                                text window)
  5097.                       int row2, col2;          (lower right corner  of the
  5098.                                                text window)
  5099.                       int watt;                (attribute)
  5100.                       int bflg;                (border flag)
  5101.  
  5102.        Description:   The w_draw function draws the text window defined by
  5103.                       the coordinates (row1, col1)  and (row2, col2)  with
  5104.                       the  attribute  defined  by  (watt).   The  window's
  5105.                       border is defined by (bflg) as follows:
  5106.  
  5107.                       ====================================================
  5108.                       Border Flag              Action
  5109.                       ----------------------------------------------------
  5110.                       NO_BORDER                Draws the window  without a
  5111.                                                border.
  5112.                       SINGLE_LINE              Draws a  single-line border
  5113.                                                around the window.
  5114.                       DOUBLE_LINE              Draws a double-line  border
  5115.                                                around the window.
  5116.                       ====================================================
  5117.  
  5118.        Return Value:  No value is returned.
  5119.  
  5120.        See Also:      w_open
  5121.  
  5122.        Example:       The  following   program  demonstrates   the  w_draw
  5123.                       function by drawing  a double-lined  text window  at
  5124.                       the coordinates (10, 30) and (15, 50).
  5125.  
  5126.                       /* w_draw demo */
  5127.                       #include <stdlib.h>
  5128.                       #include "extlib.h"
  5129.  
  5130.                       main()
  5131.                       {
  5132.                            save_initial_video();
  5133.                            w_draw(10, 30, 15, 50, 0x70, DOUBLE_LINE);
  5134.                            waitkey();
  5135.                            exit(0);
  5136.                       }
  5137.  
  5138.  
  5139.  
  5140.  
  5141.  
  5142.                                                                         73                                                                        73
  5143.  
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  
  5153.  
  5154.  
  5155.                                                                  Functions
  5156.  
  5157.        w_horizontal_bar
  5158.        -------------------------------------------------------------------
  5159.        Summary:       #include "extlib.h"
  5160.                       void w_horizontal_bar(window, curpos, total);
  5161.                       WINDOW *window;          (window)
  5162.                       int curpos;              (current line position)
  5163.                       int total;               (line length);
  5164.  
  5165.        Description:   The  w_horizontal_bar  function draws  a  horizontal
  5166.                       scroll bar on the bottom of a text  window (window).
  5167.                       The  scroll  bar  setting  is  derived  by  dividing
  5168.                       (curpos) by (total).
  5169.  
  5170.        Return Value:  No value is returned.
  5171.  
  5172.        See Also:      w_vertical_bar
  5173.  
  5174.        Example:       The    following     program    demonstrates     the
  5175.                       w_horizontal_bar function by displaying a variety of
  5176.                       line positions.
  5177.  
  5178.                       /* w_horizontal_bar demo */
  5179.                       #include <stdlib.h>
  5180.                       #include "extlib.h"
  5181.  
  5182.                       main()
  5183.                       {
  5184.                            int i;
  5185.                            WINDOW *w;
  5186.  
  5187.                            save_initial_video();
  5188.                            w = w_open(1, 30, 10, 70, 0x70, SINGLE_LINE);
  5189.                            w_horizontal_bar(w, 0, 100);
  5190.                            waitkey();
  5191.                            w_horizontal_bar(w, 50, 100);
  5192.                            waitkey();
  5193.                            w_horizontal_bar(w, 100, 100);
  5194.                            waitkey();
  5195.                            exit(0);
  5196.                       }
  5197.  
  5198.  
  5199.  
  5200.  
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.                                                                         74                                                                        74
  5209.  
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.                                                                  Functions
  5222.  
  5223.        w_open
  5224.        -------------------------------------------------------------------
  5225.        Summary:       #include "extlib.h"
  5226.                       WINDOW *w_open(row1, col1, row2, col2, watt,
  5227.                            [bflg, sflg]);
  5228.                       int row1, col1;          (upper left  corner of  the
  5229.                                                text window)
  5230.                       int row2, col2;          (lower right corner  of the
  5231.                                                text window)
  5232.                       int watt;                (window attribute)
  5233.                       int bflg;                (border type flag)
  5234.                       int sflg;                (scroll type flag)
  5235.  
  5236.        Description:   The  w_open function defines and opens a text window
  5237.                       at  the  coordinates  defined by  (row1,  col1)  and
  5238.                       (row2, col2).    Furthermore,  the  w_open  function
  5239.                       defines the window's  attributes (watt), border type
  5240.                       (btype), and scroll type (sflg).  If (watt) is equal
  5241.                       to  0, the text window will  not be drawn when it is
  5242.                       opened.    The bflg  parameter  can  be  one of  the
  5243.                       following constants:
  5244.  
  5245.                       ====================================================
  5246.                       Constant                 Action
  5247.                       ----------------------------------------------------
  5248.                       NO_BORDER                When the window  is opened,
  5249.                                                it  is   drawn  without   a
  5250.                                                border.
  5251.                       SINGLE_LINE              When the window  is opened,
  5252.                                                it is drawn  with a single-
  5253.                                                lined border.
  5254.                       DOUBLE_LINE              When the window  is opened,
  5255.                                                it is drawn  with a double-
  5256.                                                lined border.
  5257.                       ====================================================
  5258.  
  5259.                       The  sflg  parameter  can be  one  of  the following
  5260.                       constants:
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.                                                                         75                                                                        75
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.                                                                  Functions
  5288.  
  5289.                       ====================================================
  5290.                       Constant                 Action
  5291.                       ----------------------------------------------------
  5292.                       SCROLL                   Scrolls  text  sent  to the
  5293.                                                window   by  the   w_print,
  5294.                                                w_printat,        w_printf,
  5295.                                                w_println,  and w_printlnat
  5296.                                                functions.
  5297.                       NO_SCROLL                Truncates text sent  to the
  5298.                                                window   by  the   w_print,
  5299.                                                w_printat,        w_printf,
  5300.                                                w_println,  and w_printlnat
  5301.                                                functions.
  5302.                       ====================================================
  5303.  
  5304.        Return Value:  The w_open  function returns a  structure pointer of
  5305.                       type WINDOW.
  5306.  
  5307.        See Also:      w_close and w_draw
  5308.  
  5309.        Example:       The  following   program  demonstrates   the  w_open
  5310.                       function by opening and drawing a text window at the
  5311.                       coordinates (1, 20) and (15, 50).
  5312.  
  5313.                       /* w_open demo */
  5314.                       #include <stdlib.h>
  5315.                       #include "extlib.h"
  5316.  
  5317.                       main()
  5318.                       {
  5319.                            WINDOW *w;
  5320.  
  5321.                            save_initial_video();
  5322.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5323.                            waitkey();
  5324.                            w = w_close(w);
  5325.                            exit(0);
  5326.                       }
  5327.  
  5328.  
  5329.  
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.                                                                         76                                                                        76
  5341.  
  5342.  
  5343.  
  5344.  
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.  
  5351.  
  5352.  
  5353.                                                                  Functions
  5354.  
  5355.        w_print
  5356.        -------------------------------------------------------------------
  5357.        Summary:       #include "extlib.h"
  5358.                       void w_print(window, string);
  5359.                       WINDOW *window;          (window)
  5360.                       char *string;            (string pointer)
  5361.  
  5362.        Description:   The w_print function  displays a (string) at  a text
  5363.                       window's (window) current cursor position.
  5364.  
  5365.        Return Value:  No value is returned.
  5366.  
  5367.        See Also:      w_printat, w_printf, w_println, and w_printlnat
  5368.  
  5369.        Example:       The  following  program   demonstrates  the  w_print
  5370.                       function by displaying an assortment of strings in a
  5371.                       text window.
  5372.  
  5373.                       /* w_print demo */
  5374.                       #include <stdlib.h>
  5375.                       #include "extlib.h"
  5376.  
  5377.                       main()
  5378.                       {
  5379.                            WINDOW *w;
  5380.  
  5381.                            save_initial_video();
  5382.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5383.                            w_print(w, "This is message 1");
  5384.                            w_print(w, "This is message 2");
  5385.                            w_print(w, "This is message 3");
  5386.                            waitkey();
  5387.                            w = w_close(w);
  5388.                            exit(0);
  5389.                       }
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399.  
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405.  
  5406.                                                                         77                                                                        77
  5407.  
  5408.  
  5409.  
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.                                                                  Functions
  5420.  
  5421.        w_printat
  5422.        -------------------------------------------------------------------
  5423.        Summary:       #include "extlib.h"
  5424.                       void w_printat(window, row, col, string);
  5425.                       WINDOW *window;          (window)
  5426.                       int row, col;            (screen position)
  5427.                       char *string;            (string pointer)
  5428.  
  5429.        Description:   The w_printat  function displays a  (string) at  the
  5430.                       text window (window) position defined by (row, col).
  5431.  
  5432.        Return Value:  No value is returned.
  5433.  
  5434.        See Also:      w_print, w_printf, w_println, and w_printlnat
  5435.  
  5436.        Example:       The  following  program demonstrates  the  w_printat
  5437.                       function by displaying an assortment of strings in a
  5438.                       text window.
  5439.  
  5440.                       /* w_printat demo */
  5441.                       #include <stdlib.h>
  5442.                       #include "extlib.h"
  5443.  
  5444.                       main()
  5445.                       {
  5446.                            WINDOW *w;
  5447.  
  5448.                            save_initial_video();
  5449.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5450.                            w_printat(w, 3, 1, "This is message 1");
  5451.                            w_printat(w, 2, 1, "This is message 2");
  5452.                            w_printat(w, 5, 1, "This is message 3");
  5453.                            waitkey();
  5454.                            w = w_close(w);
  5455.                            exit(0);
  5456.                       }
  5457.  
  5458.  
  5459.  
  5460.  
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.  
  5472.                                                                         78                                                                        78
  5473.  
  5474.  
  5475.  
  5476.  
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  
  5483.  
  5484.  
  5485.                                                                  Functions
  5486.  
  5487.        w_printf
  5488.        -------------------------------------------------------------------
  5489.        Summary:       #include "extlib.h"
  5490.                       int w_printf(window, row, col, format, ...);
  5491.                       WINDOW *window;          (window)
  5492.                       int row, col;            (screen position)
  5493.                       char *format;            (format string)
  5494.  
  5495.        Description:   The  w_printf function displays a printf at the text
  5496.                       window (window) position defined by (row, col).
  5497.  
  5498.        Return Value:  The  w_printf  function returns  the  length  of the
  5499.                       displayed string.
  5500.  
  5501.        See Also:      w_print, w_printat, w_println, and w_printlnat
  5502.  
  5503.        Example:       The  following  program  demonstrates  the  w_printf
  5504.                       function by displaying a formatted string at the top
  5505.                       line of a text window.
  5506.  
  5507.                       /* w_printf demo */
  5508.                       #include <stdlib.h>
  5509.                       #include "extlib.h"
  5510.  
  5511.                       main()
  5512.                       {
  5513.                            WINDOW *w;
  5514.  
  5515.                            save_initial_video();
  5516.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5517.                            w_printf(w, 1, 1, "This is line # %d", 1);
  5518.                            waitkey();
  5519.                            w = w_close(w);
  5520.                            exit(0);
  5521.                       }
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.                                                                         79                                                                        79
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550.  
  5551.                                                                  Functions
  5552.  
  5553.        w_println
  5554.        -------------------------------------------------------------------
  5555.        Summary:       #include "extlib.h"
  5556.                       void w_println(window, string);
  5557.                       WINDOW *window;          (window)
  5558.                       char *string;            (string pointer)
  5559.  
  5560.        Description:   The  w_println function  displays a  (string) and  a
  5561.                       carriage return at a text window's (window)  current
  5562.                       cursor position.
  5563.  
  5564.        Return Value:  No value is returned.
  5565.  
  5566.        See Also:      w_print, w_printat, w_printf, and w_printlnat
  5567.  
  5568.        Example:       The  following  program demonstrates  the  w_println
  5569.                       function by displaying an assortment of strings in a
  5570.                       text window.
  5571.  
  5572.                       /* w_println demo */
  5573.                       #include <stdlib.h>
  5574.                       #include "extlib.h"
  5575.  
  5576.                       main()
  5577.                       {
  5578.                            WINDOW *w;
  5579.  
  5580.                            save_initial_video();
  5581.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5582.                            w_println(w, "This is message 1");
  5583.                            w_println(w, "This is message 2");
  5584.                            w_println(w, "This is message 3");
  5585.                            waitkey();
  5586.                            w = w_close(w);
  5587.                            exit(0);
  5588.                       }
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.                                                                         80                                                                        80
  5605.  
  5606.  
  5607.  
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.                                                                  Functions
  5618.  
  5619.        w_printlnat
  5620.        -------------------------------------------------------------------
  5621.        Summary:       #include "extlib.h"
  5622.                       void w_printlnat(window, row, col, string);
  5623.                       WINDOW *window;          (window)
  5624.                       int row, col;            (screen position)
  5625.                       char *string;            (string pointer)
  5626.  
  5627.        Description:   The w_printlnat  function displays a  (string) and a
  5628.                       carriage return at the text window (window) position
  5629.                       defined by (row, col).
  5630.  
  5631.        Return Value:  No value is returned.
  5632.  
  5633.        See Also:      w_print, w_printat, w_printf, and w_println
  5634.  
  5635.        Example:       The following  program demonstrates  the w_printlnat
  5636.                       function by displaying an assortment of strings in a
  5637.                       text window.
  5638.  
  5639.                       /* w_printlnat demo */
  5640.                       #include <stdlib.h>
  5641.                       #include "extlib.h"
  5642.  
  5643.                       main()
  5644.                       {
  5645.                            WINDOW *w;
  5646.  
  5647.                            save_initial_video();
  5648.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5649.                            w_printlnat(w, 3, 1, "This is message 1");
  5650.                            w_printlnat(w, 2, 1, "This is message 2");
  5651.                            w_printlnat(w, 5, 1, "This is message 3");
  5652.                            waitkey();
  5653.                            w = w_close(w);
  5654.                            exit(0);
  5655.                       }
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.  
  5668.  
  5669.  
  5670.                                                                         81                                                                        81
  5671.  
  5672.  
  5673.  
  5674.  
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680.  
  5681.  
  5682.  
  5683.                                                                  Functions
  5684.  
  5685.        w_scroll
  5686.        -------------------------------------------------------------------
  5687.        Summary:       #include "extlib.h"
  5688.                       void w_scroll(window, nlines, direction, cflag);
  5689.                       WINDOW *window;          (window)
  5690.                       int nlines;              (number of lines to scroll)
  5691.                       int direction;           (scroll direction)
  5692.                       int cflag;               (clear lines flag)
  5693.  
  5694.        Description:   The w_scroll  function scrolls  the contents  of the
  5695.                       text window defined by (window).  If (cflag) is TRUE
  5696.                       (1), the (nlines) at the beginning of the scroll are
  5697.                       cleared.   Otherwise, the beginning scroll lines are
  5698.                       left intact.   The (direction) parameter can  be one
  5699.                       of the following constants (defined in extlib.h):
  5700.  
  5701.                       ====================================================
  5702.                       Constant                 Action
  5703.                       ----------------------------------------------------
  5704.                       UP                       Scroll  the  text  window's
  5705.                                                contents up (nlines).
  5706.                       DOWN                     Scroll  the  text  window's
  5707.                                                contents down (nlines).
  5708.                       LEFT                     Scroll  the  text  window's
  5709.                                                contents left (nlines).
  5710.                       RIGHT                    Scroll  the  text  window's
  5711.                                                contents right (nlines).
  5712.                       ====================================================
  5713.  
  5714.        Return Value:  No value is returned.
  5715.  
  5716.        Example:       The  following  program  demonstrates  the  w_scroll
  5717.                       function   by   performing  a   variety   of  scroll
  5718.                       operations.
  5719.  
  5720.                       /* w_scroll demo */
  5721.                       #include <stdlib.h>
  5722.                       #include "extlib.h"
  5723.  
  5724.                       main()
  5725.                       {
  5726.                            int i;
  5727.                            WINDOW *w;
  5728.  
  5729.                            save_initial_video();
  5730.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5731.                            for (i = 0; i < 10; i++)
  5732.                                 w_println(w, "This is another string");
  5733.                            waitkey();
  5734.                            w_scroll(w, 1, UP, CLEAR);
  5735.  
  5736.                                                                         82                                                                        82
  5737.  
  5738.  
  5739.  
  5740.  
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.                                                                  Functions
  5750.  
  5751.                            waitkey();
  5752.                            w_scroll(w, 1, DOWN, CLEAR);
  5753.                            waitkey();
  5754.                            w_scroll(w, 1, LEFT, CLEAR);
  5755.                            waitkey();
  5756.                            w_scroll(w, 1, RIGHT, CLEAR);
  5757.                            waitkey();
  5758.                            w = w_close(w);
  5759.                            exit(0);
  5760.                       }
  5761.  
  5762.  
  5763.  
  5764.  
  5765.  
  5766.  
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789.  
  5790.  
  5791.  
  5792.  
  5793.  
  5794.  
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802.                                                                         83                                                                        83
  5803.  
  5804.  
  5805.  
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814.  
  5815.                                                                  Functions
  5816.  
  5817.        w_setcurpos
  5818.        -------------------------------------------------------------------
  5819.        Summary:       #include "extlib.h"
  5820.                       void w_setcurpos(window, row, col);
  5821.                       WINDOW *window;          (window)
  5822.                       int row, col;            (text window position)
  5823.  
  5824.        Description:   The  w_setcurpos function  moves the  cursor to  the
  5825.                       text window  position defined  by (row,  col).   The
  5826.                       text window is defined by (window).
  5827.  
  5828.        Return Value:  No value is returned.
  5829.  
  5830.        Example:       The following  program demonstrates  the w_setcurpos
  5831.                       function  by moving  the  cursor  to  a  variety  of
  5832.                       positions.
  5833.  
  5834.                       /* w_setcurpos demo */
  5835.                       #include <stdlib.h>
  5836.                       #include "extlib.h"
  5837.  
  5838.                       main()
  5839.                       {
  5840.                            WINDOW *w;
  5841.  
  5842.                            save_initial_video();
  5843.                            w = w_open(1, 20, 15, 50, 0x70, SINGLE_LINE);
  5844.                            cursoron();
  5845.                            waitkey();
  5846.                            w_setcurpos(w, 10, 5);
  5847.                            waitkey();
  5848.                            w_setcurpos(w, 6, 7);
  5849.                            waitkey();
  5850.                            w = w_close(w);
  5851.                            exit(0);
  5852.                       }
  5853.  
  5854.  
  5855.  
  5856.  
  5857.  
  5858.  
  5859.  
  5860.  
  5861.  
  5862.  
  5863.  
  5864.  
  5865.  
  5866.  
  5867.  
  5868.                                                                         84                                                                        84
  5869.  
  5870.  
  5871.  
  5872.  
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878.  
  5879.  
  5880.  
  5881.                                                                  Functions
  5882.  
  5883.        w_vertical_bar
  5884.        -------------------------------------------------------------------
  5885.        Summary:       #include "extlib.h"
  5886.                       void w_vertical_bar(window, curpos, total);
  5887.                       WINDOW *window;          (window)
  5888.                       int curpos;              (current file position)
  5889.                       int total;               (file length);
  5890.  
  5891.        Description:   The w_vertical_bar function draws  a vertical scroll
  5892.                       bar on  the right side  of a  text window  (window).
  5893.                       The  scroll  bar  setting  is  derived  by  dividing
  5894.                       (curpos) by (total).
  5895.  
  5896.        Return Value:  No value is returned.
  5897.  
  5898.        See Also:      w_horizontal_bar
  5899.  
  5900.        Example:       The    following     program    demonstrates     the
  5901.                       w_vertical_bar function  by displaying a  variety of
  5902.                       file positions.
  5903.  
  5904.                       /* w_vertical_bar demo */
  5905.                       #include <stdlib.h>
  5906.                       #include "extlib.h"
  5907.  
  5908.                       main()
  5909.                       {
  5910.                            int i;
  5911.                            WINDOW *w;
  5912.  
  5913.                            save_initial_video();
  5914.                            w = w_open(1, 30, 10, 70, 0x70, SINGLE_LINE);
  5915.                            w_vertical_bar(w, 0, 100);
  5916.                            waitkey();
  5917.                            w_vertical_bar(w, 50, 100);
  5918.                            waitkey();
  5919.                            w_vertical_bar(w, 100, 100);
  5920.                            waitkey();
  5921.                            exit(0);
  5922.                       }
  5923.  
  5924.  
  5925.  
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.                                                                         85                                                                        85
  5935.  
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.  
  5945.  
  5946.  
  5947.                                                                  Functions
  5948.  
  5949.        waitkey
  5950.        -------------------------------------------------------------------
  5951.        Summary:       #include "extlib.h"
  5952.                       int waitkey(void);
  5953.  
  5954.        Description:   The waitkey function waits for the operator to press
  5955.                       a key.
  5956.  
  5957.        Return Value:  The  waitkey function returns the ASCII code for all
  5958.                       nonextended-keyboard keys.   Extended-keyboard  keys
  5959.                       return a value of their scan code + 256.
  5960.  
  5961.        See Also:      keypressed
  5962.  
  5963.        Example:       The  following  program   demonstrates  the  waitkey
  5964.                       function by  returning the values  for an assortment
  5965.                       of  key presses.   Program  execution will  continue
  5966.                       until the <ESC> key is pressed.
  5967.  
  5968.                       /* waitkey demo */
  5969.                       #include <stdio.h>
  5970.                       #include <stdlib.h>
  5971.                       #include "extlib.h"
  5972.  
  5973.                       main()
  5974.                       {
  5975.                            int key;
  5976.  
  5977.                            save_initial_video();
  5978.                            while (TRUE) {
  5979.                                 if ((key = waitkey()) == 27)
  5980.                                      exit(0);
  5981.                                 printf("%d\n", key);
  5982.                            }
  5983.                       }
  5984.  
  5985.  
  5986.  
  5987.  
  5988.  
  5989.  
  5990.  
  5991.  
  5992.  
  5993.  
  5994.  
  5995.  
  5996.  
  5997.  
  5998.  
  5999.  
  6000.                                                                         86                                                                        86
  6001.  
  6002.  
  6003.  
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  
  6011.  
  6012.  
  6013.                                                                  Functions
  6014.  
  6015.        wprintf
  6016.        -------------------------------------------------------------------
  6017.        Summary:       #include "extlib.h"
  6018.                       int wprintf(row, col, format, ...);
  6019.                       int row, col;            (screen position)
  6020.                       char *format;            (format string)
  6021.  
  6022.        Description:   The  wprintf  function  performs  a  printf  at  the
  6023.                       display screen position defined by (row, col).
  6024.  
  6025.        Return Value:  The wprintf  function  returns  the  length  of  the
  6026.                       displayed string.
  6027.  
  6028.        See Also:      w_printf
  6029.        Example:       The  following  program   demonstrates  the  wprintf
  6030.                       function by displaying a formatted string on the top
  6031.                       line of the display screen.
  6032.  
  6033.                       /* wprintf demo */
  6034.                       #include <stdio.h>
  6035.                       #include <stdlib.h>
  6036.                       #include "extlib.h"
  6037.  
  6038.                       main()
  6039.                       {
  6040.                            save_initial_video();
  6041.                            wprintf(1, 40, "This string starts at %d,%d.",
  6042.                                 1, 40);
  6043.                            waitkey();
  6044.                            exit(0);
  6045.                       }
  6046.  
  6047.  
  6048.  
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.                                                                         87                                                                        87
  6067.  
  6068.  
  6069.  
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.                                                               Registration
  6080.  
  6081.                                    Registration
  6082.  
  6083.        Registration  licenses you  to use  Extended Library  2.0,  and all
  6084.        future 2.x updates.   Any unregistered use other than  trial use to
  6085.        determine if  Extended Library meets  your needs is a  violation of
  6086.        our license agreement and is forbidden.
  6087.  
  6088.        Single   user  registration  is  available  for  $20.00  per  copy.
  6089.        Registered users will be sent  the most current version of Extended
  6090.        Library.   This includes  all 16  versions of the  library and  the
  6091.        complete source  code.   Registration  also  entitles you  to  free
  6092.        telephone  support and  discounts on  future  versions of  Extended
  6093.        Library.
  6094.  
  6095.        The  Extended Library  license authorizes  the use  of one  copy of
  6096.        Extended Library on  one machine at a  time.  If you  have multiple
  6097.        computers, either standalone, networked, or multi-user, you need to
  6098.        register one copy of Extended Library for each workstation on which
  6099.        it will be used.
  6100.  
  6101.  
  6102.  
  6103.  
  6104.  
  6105.  
  6106.  
  6107.  
  6108.  
  6109.  
  6110.  
  6111.  
  6112.  
  6113.  
  6114.  
  6115.  
  6116.  
  6117.  
  6118.  
  6119.  
  6120.  
  6121.  
  6122.  
  6123.  
  6124.  
  6125.  
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.                                                                         88                                                                        88
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.                                      Invoice
  6146.  
  6147.                       Maine Data and Financial Systems, Inc.
  6148.                                   HCR 79 Box 103
  6149.                                  Orland, ME 04472
  6150.  
  6151.                                   (207) 469-7027
  6152.  
  6153.        Quantity  Description                                  Amount
  6154.  
  6155.        ________  Extended Library 2.0 Registration @ $20.00   ________
  6156.  
  6157.  
  6158.                  Registration   is   for    each   computer   or
  6159.                  workstation on  which Extended Library  will be
  6160.                  used.
  6161.  
  6162.                                                     Subtotal  ________
  6163.  
  6164.                             Maine Residents add 5% sales tax  ________
  6165.  
  6166.                                                        Total  ________
  6167.  
  6168.  
  6169.           Name:  _____________________________________________________
  6170.  
  6171.        Company:  _____________________________________________________
  6172.  
  6173.        Address:  _____________________________________________________
  6174.  
  6175.                  _____________________________________________________
  6176.  
  6177.                  _____________________________________________________
  6178.  
  6179.          Phone:  _____________________________________________________
  6180.  
  6181.                              THANK YOU FOR YOUR ORDER
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.